diff --git a/app/src/models/banner.ts b/app/src/models/banner.ts index fc645bf74a4..d815fd27b1d 100644 --- a/app/src/models/banner.ts +++ b/app/src/models/banner.ts @@ -17,6 +17,7 @@ export enum BannerType { SuccessfulReorder = 'SuccessfulReorder', ConflictsFound = 'ConflictsFound', OSVersionNoLongerSupported = 'OSVersionNoLongerSupported', + WorktreesEnabled = 'WorktreesEnabled', } export type Banner = @@ -122,3 +123,4 @@ export type Banner = readonly onOpenConflictsDialog: () => void } | { readonly type: BannerType.OSVersionNoLongerSupported } + | { readonly type: BannerType.WorktreesEnabled } diff --git a/app/src/ui/app.tsx b/app/src/ui/app.tsx index b9c9611e3aa..3f1047c7dcf 100644 --- a/app/src/ui/app.tsx +++ b/app/src/ui/app.tsx @@ -966,6 +966,11 @@ export class App extends React.Component { return } + if (!this.state.showWorktrees) { + this.props.dispatcher.setShowWorktrees(true) + this.setBanner({ type: BannerType.WorktreesEnabled }) + } + if ( this.state.currentFoldout && this.state.currentFoldout.type === FoldoutType.Worktree diff --git a/app/src/ui/banners/render-banner.tsx b/app/src/ui/banners/render-banner.tsx index af20c6e2a8d..68718503549 100644 --- a/app/src/ui/banners/render-banner.tsx +++ b/app/src/ui/banners/render-banner.tsx @@ -3,6 +3,8 @@ import * as React from 'react' import { assertNever } from '../../lib/fatal-error' import { Banner, BannerType } from '../../models/banner' +import { PopupType } from '../../models/popup' +import { PreferencesTab } from '../../models/preferences' import { Dispatcher } from '../dispatcher' import { MergeConflictsBanner } from './merge-conflicts-banner' @@ -19,6 +21,7 @@ import { SuccessfulSquash } from './successful-squash' import { SuccessBanner } from './success-banner' import { ConflictsFoundBanner } from './conflicts-found-banner' import { OSVersionNoLongerSupportedBanner } from './os-version-no-longer-supported-banner' +import { LinkButton } from '../lib/link-button' export function renderBanner( banner: Banner, @@ -171,6 +174,31 @@ export function renderBanner( ) case BannerType.OSVersionNoLongerSupported: return + case BannerType.WorktreesEnabled: { + const label = __DARWIN__ + ? 'Appearance Settings' + : 'Appearance Options' + return ( + + Worktrees enabled. You can change this in{' '} + + dispatcher.showPopup({ + type: PopupType.Preferences, + initialSelectedTab: PreferencesTab.Appearance, + }) + } + > + {label} + + . + + ) + } default: return assertNever(banner, `Unknown popup type: ${banner}`) }