Skip to content

Commit 65c0f7d

Browse files
cleanup
1 parent 2099d39 commit 65c0f7d

File tree

6 files changed

+22
-65
lines changed

6 files changed

+22
-65
lines changed

apps/design-system/src/subjects/views/pull-request-conversation/pull-request-changes.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ interface PullRequestChangesProps extends PropsWithChildren<React.HTMLAttributes
1414
}
1515

1616
const PullRequestChanges: FC<PullRequestChangesProps> = ({ state }) => {
17+
const isCommitDialogOpen = false
18+
1719
const usePullRequestProviderStore = useCallback(
1820
() => ({
1921
...pullRequestProviderStore,
@@ -45,7 +47,7 @@ const PullRequestChanges: FC<PullRequestChangesProps> = ({ state }) => {
4547
return (
4648
<>
4749
<CommitSuggestionsDialog
48-
isOpen={false}
50+
isOpen={isCommitDialogOpen}
4951
onClose={noop}
5052
onFormSubmit={() => Promise.resolve()}
5153
isSubmitting={false}

apps/design-system/src/subjects/views/pull-request-conversation/pull-request-conversation.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ interface PullRequestConversationProps extends PropsWithChildren<React.HTMLAttri
3434
}
3535

3636
const PullRequestConversation: FC<PullRequestConversationProps> = ({ state }) => {
37+
const isCommitDialogOpen = false
38+
3739
const suggestionsBatch: CommitSuggestion[] = []
3840

3941
const handleRebaseBranch = () => {}
@@ -84,7 +86,7 @@ const PullRequestConversation: FC<PullRequestConversationProps> = ({ state }) =>
8486
return (
8587
<>
8688
<CommitSuggestionsDialog
87-
isOpen={false}
89+
isOpen={isCommitDialogOpen}
8890
onClose={noop}
8991
onFormSubmit={() => Promise.resolve()}
9092
isSubmitting={false}

packages/ui/src/components/alert-dialog.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ const Content = forwardRef<HTMLDivElement, ContentProps>(({ title, children }, r
7777
})
7878

7979
return (
80-
<Dialog.Content onOpenAutoFocus={event => event.preventDefault()} ref={ref}>
80+
<Dialog.Content ref={ref}>
8181
<Dialog.Header
8282
icon={
8383
context.theme === 'danger' ? 'xmark-circle' : context.theme === 'warning' ? 'warning-triangle' : undefined

packages/ui/src/components/dialog.tsx

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -69,28 +69,27 @@ const useDialogFocusManager = () => {
6969
return context
7070
}
7171

72+
/**
73+
* DialogProvider component manages focus for dialog triggers.
74+
* It ensures that the last focused element is restored when the dialog is closed.
75+
*/
7276
const DialogProvider = ({ children }: { children: ReactNode }) => {
7377
const focusStack = useRef<FocusEntry[]>([])
7478

7579
const unregisterTrigger = useCallback((id: string) => {
7680
focusStack.current = focusStack.current.filter(e => e.triggerId !== id)
77-
console.log('🚀 ~ unregisterTrigger ~ focusStack.current:', focusStack.current)
7881
}, [])
7982

8083
const registerTrigger = useCallback((entry: FocusEntry) => {
8184
unregisterTrigger(entry.triggerId)
82-
console.log('🚀 ~ registerTrigger ~ entry.triggerId:', entry.triggerId)
8385
focusStack.current.push(entry)
84-
console.log('🚀 ~ registerTrigger ~ focusStack.current:', focusStack.current)
8586
}, [])
8687

8788
const restoreFocus = useCallback((id: string) => {
88-
console.log('🚀 ~ restoreFocus ~ focusStack.current:', focusStack.current)
8989
const entryIndex = focusStack.current.findIndex(e => e.triggerId === id)
9090

9191
if (entryIndex !== -1) {
9292
const entry = focusStack.current[entryIndex]
93-
console.log('🚀 ~ restoreFocus ~ entry:', entry)
9493
if (entry.triggerElement) {
9594
setTimeout(() => entry.triggerElement.focus(), 0)
9695
}
@@ -121,6 +120,11 @@ const useTriggerId = (_id?: string) => {
121120
return id.current
122121
}
123122

123+
/**
124+
* Custom hook to manage dialog trigger elements.
125+
* It provides a ref for the trigger element and a callback to register the trigger.
126+
* Useful when a dialog is opened from a complex components like dropdowns, etc.
127+
*/
124128
const useCustomDialogTrigger = () => {
125129
const focusManager = useDialogFocusManager()
126130
const triggerId = useTriggerId()
@@ -173,7 +177,6 @@ const Content = forwardRef<HTMLDivElement, ContentProps>(
173177
const { open } = useDialogOpen()
174178

175179
const handleCloseAutoFocus = useCallback(() => {
176-
console.log('🚀 ~ triggerId:', triggerId)
177180
if (focusManager) {
178181
focusManager.restoreFocus(triggerId)
179182
}
@@ -189,7 +192,6 @@ const Content = forwardRef<HTMLDivElement, ContentProps>(
189192

190193
useEffect(() => {
191194
return () => {
192-
console.log('🚀 ~ return ():', focusManager)
193195
if (focusManager) {
194196
focusManager.unregisterTrigger(triggerId)
195197
}
@@ -324,6 +326,10 @@ const Close = forwardRef<HTMLButtonElement, ButtonProps>(({ children, className,
324326
))
325327
Close.displayName = 'Dialog.Close'
326328

329+
/**
330+
* Dialog trigger component is essential for opening dialogs.
331+
* It registers the trigger element with the dialog focus manager.
332+
*/
327333
const Trigger = forwardRef<HTMLButtonElement, ButtonProps>(({ onClick, id, ...props }, ref) => {
328334
const triggerId = useTriggerId(id)
329335
const focusManager = useDialogFocusManager()
@@ -333,7 +339,6 @@ const Trigger = forwardRef<HTMLButtonElement, ButtonProps>(({ onClick, id, ...pr
333339

334340
const handleClick = (event: MouseEvent<HTMLButtonElement>) => {
335341
if (focusManager) {
336-
console.log('🚀 ~ focusManager:', focusManager)
337342
focusManager.registerTrigger({ triggerId, triggerElement: event.currentTarget })
338343
}
339344
onClick?.(event)

packages/ui/src/components/file-control-bars/file-viewer-control-bar.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ export const FileViewerControlBar: FC<FileViewerControlBarProps> = ({
4141
refType = BranchSelectorTab.BRANCHES
4242
}) => {
4343
const { triggerRef, registerTrigger } = useCustomDialogTrigger()
44+
4445
const handleViewRaw = () => {
4546
window.open(url, '_blank')
4647
}

packages/ui/src/views/repo/repo-branch/components/create-branch-dialog.tsx

Lines changed: 1 addition & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,7 @@
11
import { useCallback, useEffect, useState } from 'react'
22
import { useForm } from 'react-hook-form'
33

4-
import {
5-
Alert,
6-
Button,
7-
ButtonLayout,
8-
ControlGroup,
9-
Dialog,
10-
FormInput,
11-
FormWrapper,
12-
Label,
13-
LanguageDialog,
14-
LanguageInterface,
15-
languages
16-
} from '@/components'
4+
import { Alert, Button, ButtonLayout, ControlGroup, Dialog, FormInput, FormWrapper, Label } from '@/components'
175
import { TFunctionWithFallback, useTranslation } from '@/context'
186
import { zodResolver } from '@hookform/resolvers/zod'
197
import { z } from 'zod'
@@ -117,25 +105,6 @@ export function CreateBranchDialog({
117105
onClose()
118106
}
119107

120-
const [isOpen, setIsOpen] = useState(false)
121-
122-
const handleOpenChange = (open: boolean) => {
123-
setIsOpen(open)
124-
}
125-
126-
const handleChange = (language: LanguageInterface) => {
127-
console.log(language)
128-
}
129-
130-
const handleSave = (language: LanguageInterface) => {
131-
console.log(language)
132-
}
133-
134-
const handleCancel = () => {
135-
console.log('Cancelled')
136-
setIsOpen(false)
137-
}
138-
139108
return (
140109
<Dialog.Root open={open} onOpenChange={handleClose}>
141110
<Dialog.Content aria-describedby={undefined} className="max-w-2xl">
@@ -181,31 +150,9 @@ export function CreateBranchDialog({
181150
</Alert.Description>
182151
</Alert.Root>
183152
)}
184-
185-
<Dialog.Root>
186-
<Dialog.Trigger>Open test dialog</Dialog.Trigger>
187-
<Dialog.Content>
188-
<Dialog.Header>
189-
<Dialog.Title>Test dialog</Dialog.Title>
190-
</Dialog.Header>
191-
<Dialog.Body>
192-
<p>This is a test dialog.</p>
193-
<Dialog.Trigger onClick={() => setIsOpen(true)}>Select Language</Dialog.Trigger>
194-
</Dialog.Body>
195-
</Dialog.Content>
196-
</Dialog.Root>
197153
</FormWrapper>
198154
</Dialog.Body>
199155

200-
<LanguageDialog
201-
open={isOpen}
202-
onOpenChange={handleOpenChange}
203-
onChange={handleChange}
204-
onSave={handleSave}
205-
onCancel={handleCancel}
206-
supportedLanguages={languages}
207-
/>
208-
209156
<Dialog.Footer>
210157
<ButtonLayout>
211158
<Dialog.Close onClick={handleClose} disabled={isLoading}>

0 commit comments

Comments
 (0)