You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 625bbc3
Browse filesBrowse the repository at this point in the historyBrowse files
| An async action from a button or row: pending, an error, one lock |`usePendingAction` (`src/hooks/`) |
37
-
| Direct actions and confirmation dialogs that must exclude each other |`useActionLock` injected into `usePendingAction` and `useConfirmController` (`src/hooks/`, `src/blocks/confirm/`) |
38
-
| A form: values, validation, submit, field errors |`useForm` (`src/components/form/`), with `validateAsync` for a server-side check |
39
-
| A `<form>` element, without the browser's validation popup |`Form` (`src/primitives/form/`) |
40
-
| A model save whose Clerk errors should land on form fields |`save` (`src/utils/errors.ts`) in the model, or reject with `FormSubmitError`|
41
-
| A confirm step before an action |`useConfirmController` (`src/blocks/confirm/`) with `Confirmation` (`src/blocks/confirmation/`) |
42
-
| A delete that needs the user to type a phrase |`useConfirmController` (`src/blocks/confirm/`) with `Destructive` (`src/blocks/destructive/`) |
43
-
| An action that may need step-up verification |`useReverificationFlow` (`src/features/reverification/`) in the model, passed to `useConfirmController`|
44
-
| A direct action that needs step-up verification |`useReverificationFlow` in the model, with `ReverificationDialog` (`src/blocks/reverification/`) in the view |
45
-
| Showing any error to the user | One of the owners above. They call `toLocalizableError` and resolve copy with `useErrorText`|
46
-
| Moving focus after a list row is removed |`useListRemovalFocus` (`src/hooks/`) |
47
-
| A debounced, abortable async check as the user types |`useDebouncedAsync` (`src/hooks/`) |
48
-
| A spinner that should not flash or flicker |`useSpinDelay` (`src/hooks/`) |
49
-
| A placeholder for content that is still loading |`Skeleton` (`src/components/skeleton/`), see [Skeletons](docs/skeletons.md)|
50
-
| A date shown to the user |`formatDate` (`src/utils/format-date.ts`) |
51
-
| A value turned into kebab case, e.g. for a `data-*` attribute |`kebabCase` (`src/utils/kebab-case.ts`) |
52
-
| Current time for display labels |`useNow` (`src/hooks/`) |
| An inline message row that animates open and closed |`useHeldMessage`, `useMessageHeight`, `FeedbackBody` (`src/utils/feedback.tsx`) + `src/styles/feedback.styles.ts`|
55
-
| Data read from a Clerk resource that should be cached across mounts | A query hook in `src/queries/`, called from the model (`src/queries/use-user-sessions-query.ts`) |
56
-
| An item changed in place in an infinite list, kept until the next reload |`replaceInPages` (`src/utils/infinite-pages.ts`), passed to the list's `setData`|
57
-
| Siblings that slide when an item is added or removed |`useLayoutAnimation` (`src/primitives/hooks/`) |
58
-
| An input that reformats as the user types without moving the caret |`useFormattedInput` (`src/primitives/hooks/`) |
59
-
| An interaction with an async lifecycle or two values that move together | A machine in the controller file, via `setup()` (`src/machine/`) |
60
-
| Styles several components share |`src/styles/*.styles.ts`|
| An async action from a button or row: pending, an error, one lock |`usePendingAction` (`src/hooks/`) |
37
+
| Direct actions and confirmation dialogs that must exclude each other |One `usePendingAction` owner, with `runExternal` passed as `useConfirmController`'s `runAction` (`src/hooks/`, `src/blocks/confirm/`) |
38
+
| A form: values, validation, submit, field errors |`useForm` (`src/components/form/`), with `validateAsync` for a server-side check |
39
+
| A `<form>` element, without the browser's validation popup |`Form` (`src/primitives/form/`) |
40
+
| A model save whose Clerk errors should land on form fields |`save` (`src/utils/errors.ts`) in the model, or reject with `FormSubmitError`|
41
+
| A confirm step before an action |`useConfirmController` (`src/blocks/confirm/`) with `Confirmation` (`src/blocks/confirmation/`) |
42
+
| A delete that needs the user to type a phrase |`useConfirmController` (`src/blocks/confirm/`) with `Destructive` (`src/blocks/destructive/`) |
43
+
| An action that may need step-up verification |`useReverificationFlow` (`src/features/reverification/`) in the model, passed to `useConfirmController`|
44
+
| A direct action that needs step-up verification |`useReverificationFlow` in the model, with `ReverificationDialog` (`src/blocks/reverification/`) in the view |
45
+
| Showing any error to the user | One of the owners above. They call `toLocalizableError` and resolve copy with `useErrorText`|
46
+
| Moving focus after a list row is removed |`useListRemovalFocus` (`src/hooks/`) |
47
+
| A debounced, abortable async check as the user types |`useDebouncedAsync` (`src/hooks/`) |
48
+
| A spinner that should not flash or flicker |`useSpinDelay` (`src/hooks/`) |
49
+
| A placeholder for content that is still loading |`Skeleton` (`src/components/skeleton/`), see [Skeletons](docs/skeletons.md)|
50
+
| A date shown to the user |`formatDate` (`src/utils/format-date.ts`) |
51
+
| A value turned into kebab case, e.g. for a `data-*` attribute |`kebabCase` (`src/utils/kebab-case.ts`) |
52
+
| Current time for display labels |`useNow` (`src/hooks/`) |
| An inline message row that animates open and closed |`useHeldMessage`, `useMessageHeight`, `FeedbackBody` (`src/utils/feedback.tsx`) + `src/styles/feedback.styles.ts`|
55
+
| Data read from a Clerk resource that should be cached across mounts | A query hook in `src/queries/`, called from the model (`src/queries/use-user-sessions-query.ts`) |
56
+
| An item changed in place in an infinite list, kept until the next reload |`replaceInPages` (`src/utils/infinite-pages.ts`), passed to the list's `setData`|
57
+
| Siblings that slide when an item is added or removed |`useLayoutAnimation` (`src/primitives/hooks/`) |
58
+
| An input that reformats as the user types without moving the caret |`useFormattedInput` (`src/primitives/hooks/`) |
59
+
| An interaction with an async lifecycle or two values that move together | A machine in the controller file, via `setup()` (`src/machine/`) |
60
+
| Styles several components share |`src/styles/*.styles.ts`|
Copy file name to clipboardExpand all lines: packages/mosaic/src/features/user-profile/user-profile-email-section/user-profile-email-section.controller.ts
Copy file name to clipboardExpand all lines: packages/mosaic/src/features/user-profile/user-profile-phone-section/user-profile-phone-section.controller.ts
+7-9Lines changed: 7 additions & 9 deletions
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,6 @@ import { stringToFormattedPhoneString } from '@clerk/shared/phone';
0 commit comments