From 13993dc042d66c6aa04e3e94fd6a538c5658bdfa Mon Sep 17 00:00:00 2001 From: Lucas Date: Mon, 5 Jun 2023 10:44:52 -0700 Subject: [PATCH 1/5] feat: cleaning up + adding new mdx pages --- .browserslistrc | 3 - .lighthouserc.js | 15 - package.json | 3 +- src/components/Admonition.module.css | 58 ++ src/components/Admonition.tsx | 113 +++ src/components/ApiErrors.tsx | 113 --- src/components/ApiWatch.tsx | 212 ----- src/components/Bday.tsx | 154 ---- src/components/CodeArea.tsx | 43 +- src/components/CodeSandbox.tsx | 40 + src/components/ControllerContent.tsx | 84 -- src/components/FormContext.tsx | 54 -- src/components/SideMenu.tsx | 204 ----- src/components/TabGroup.tsx | 2 +- src/components/UseForm.tsx | 18 +- src/components/UseFormContext.tsx | 32 - src/components/ValidationResolver.tsx | 221 ----- src/components/VideoList.module.css | 23 - src/components/VideoList.tsx | 50 -- src/components/codeExamples/ErrorCodeTypes.ts | 83 -- src/components/codeExamples/accessibleCode.ts | 25 - .../codeExamples/accessibleCodeBase.ts | 18 - .../codeExamples/accessibleCodeFinal.ts | 31 - src/components/codeExamples/ajvResolver.tsx | 42 - .../codeExamples/asyncDefaultValue.ts | 8 - src/components/codeExamples/asyncValues.ts | 9 - src/components/codeExamples/clearError.ts | 29 - src/components/codeExamples/clearErrorTs.ts | 38 - .../codeExamples/conditionalComponent.tsx | 55 -- src/components/codeExamples/connectForm.ts | 26 - src/components/codeExamples/control.ts | 15 - src/components/codeExamples/controlTs.ts | 26 - src/components/codeExamples/controlled.ts | 36 - .../controlledMixedUncontrolled.ts | 35 - .../controlledMixedUncontrolledInput.ts | 36 - src/components/codeExamples/controller.ts | 27 - src/components/codeExamples/controllerTs.ts | 30 - .../customHookWithValidationResolver.tsx | 54 -- src/components/codeExamples/defaultExample.ts | 23 - .../codeExamples/defaultExampleTs.tsx | 28 - src/components/codeExamples/defaultValues.ts | 10 - .../codeExamples/defaultValuesTs.ts | 18 - src/components/codeExamples/enzymeInput.tsx | 3 - src/components/codeExamples/errorCode.ts | 30 - src/components/codeExamples/errorCodeTs.tsx | 38 - .../codeExamples/errorMessageAdvance.ts | 28 - src/components/codeExamples/fieldArray.tsx | 43 - .../codeExamples/fieldArrayReset.ts | 54 -- .../codeExamples/focusController.tsx | 20 - src/components/codeExamples/form.ts | 24 - .../codeExamples/formContextPerformance.ts | 36 - src/components/codeExamples/formWizard.ts | 59 -- src/components/codeExamples/getStarted.ts | 396 --------- .../codeExamples/handleSubmitAsyncCode.ts | 26 - .../codeExamples/handleSubmitCode.ts | 15 - .../codeExamples/handleSubmitCodeTs.ts | 24 - .../codeExamples/importKeystroke.ts | 4 - src/components/codeExamples/initialValue.ts | 16 - src/components/codeExamples/input.ts | 18 - src/components/codeExamples/joiResolver.tsx | 24 - src/components/codeExamples/joiResolverTs.ts | 32 - .../codeExamples/manualValidation.ts | 34 - .../codeExamples/multipleErrorCode.ts | 27 - .../codeExamples/multipleErrorCodeTs.ts | 35 - .../codeExamples/nativeValidation.ts | 18 - src/components/codeExamples/reactNative.ts | 31 - .../codeExamples/reactNativeController.ts | 52 -- src/components/codeExamples/resetCode.ts | 42 - .../codeExamples/resetCodeControlled.ts | 45 - src/components/codeExamples/resetCodeTs.ts | 35 - .../codeExamples/resetController.ts | 38 - .../codeExamples/resetControllerTs.ts | 44 - src/components/codeExamples/resetFieldCode.ts | 30 - .../codeExamples/resetFieldOptionCode.ts | 55 -- .../codeExamples/schemaValidation.ts | 28 - .../codeExamples/schemaValidationTs.ts | 29 - src/components/codeExamples/setFocus.ts | 20 - src/components/codeExamples/setFocusTs.ts | 24 - .../codeExamples/setValueUseFieldArray.ts | 58 -- src/components/codeExamples/setup.native.ts | 2 - src/components/codeExamples/shareRef.ts | 20 - src/components/codeExamples/shareRefTs.ts | 25 - .../codeExamples/shouldUseNativeValidation.ts | 16 - src/components/codeExamples/smartForm.ts | 16 - src/components/codeExamples/strictlyTyped.ts | 62 -- src/components/codeExamples/submitReset.ts | 30 - src/components/codeExamples/testingForm.ts | 190 ----- src/components/codeExamples/toggleFields.tsx | 17 - src/components/codeExamples/typeScript.ts | 33 - src/components/codeExamples/unregisterCode.ts | 17 - .../codeExamples/unregisterCodeTs.ts | 25 - .../unregisterControlledComponent.tsx | 34 - .../unregisterWrapControlledComponent.tsx | 30 - src/components/codeExamples/useWatchTypes.ts | 201 ----- .../codeExamples/validationResolver.ts | 57 -- .../codeExamples/validationResolverTs.tsx | 53 -- .../codeExamples/validationSchema.ts | 23 - .../codeExamples/validationSchemaNative.ts | 34 - .../codeExamples/validationSchemaTs.ts | 28 - src/components/codeExamples/vestResolver.tsx | 45 - .../codeExamples/virtualizedList.ts | 43 - .../codeExamples/virtualizedListFieldArray.ts | 44 - src/components/codeExamples/watchCode.ts | 31 - src/components/codeExamples/watchCodeTs.ts | 38 - src/components/codeExamples/watchCodeTypes.ts | 50 -- .../codeExamples/watchFieldArrayCode.ts | 38 - src/components/codeExamples/zodResolver.ts | 24 - src/components/codeExamples/zodResolverTs.ts | 29 - src/components/layout.css | 65 +- src/components/mdx/mdx.tsx | 4 +- src/components/mdx/pre.tsx | 2 +- src/components/react-app-env.d.ts | 4 - src/components/useController/Controller.tsx | 36 - src/components/useForm/ClearErrors.tsx | 55 -- src/components/useForm/Control.tsx | 53 -- src/components/useForm/HandleSubmit.tsx | 81 -- src/components/useForm/Reset.tsx | 101 --- src/components/useForm/SetFocus.tsx | 56 -- src/components/useForm/UnRegister.tsx | 268 ------ src/components/useForm/Watch.tsx | 29 - src/components/useForm/resetField.tsx | 219 ----- src/components/utils/useWindowSize.ts | 2 - src/content/clear-errors.mdx | 121 +++ src/content/control.mdx | 62 ++ src/content/controller.mdx | 228 ++++++ src/content/handle-submit.mdx | 133 +++ src/content/reset-field.mdx | 139 ++++ src/content/reset.mdx | 330 ++++++++ src/content/set-focus.mdx | 75 ++ src/content/unregister.mdx | 128 +++ src/content/use-form-context.mdx | 49 ++ src/content/{docs => }/use-form.mdx | 70 +- src/content/watch.mdx | 178 ++++ src/data/advanced.tsx | 628 -------------- src/data/faq.tsx | 768 ------------------ src/data/languages.js | 4 - src/data/ts.tsx | 568 ------------- src/pages/_app.tsx | 19 +- src/pages/advanced-usage.tsx | 9 +- src/pages/docs/usecontroller/controller.tsx | 27 +- src/pages/docs/useform.tsx | 8 +- src/pages/docs/useform/clearerrors.tsx | 25 +- src/pages/docs/useform/control.tsx | 25 +- src/pages/docs/useform/handlesubmit.tsx | 28 +- src/pages/docs/useform/reset.tsx | 27 +- src/pages/docs/useform/resetfield.tsx | 28 +- src/pages/docs/useform/setfocus.tsx | 28 +- src/pages/docs/useform/unregister.tsx | 27 +- src/pages/docs/useform/watch.tsx | 25 +- src/pages/docs/useformcontext.tsx | 27 +- src/pages/faqs.tsx | 9 +- src/pages/get-started.tsx | 8 +- src/pages/ts.tsx | 8 +- src/state/setting.ts | 4 - tsconfig.json | 2 +- yarn.lock | 173 +--- 156 files changed, 2006 insertions(+), 7891 deletions(-) delete mode 100644 .browserslistrc delete mode 100644 .lighthouserc.js create mode 100644 src/components/Admonition.module.css create mode 100644 src/components/Admonition.tsx delete mode 100644 src/components/ApiErrors.tsx delete mode 100644 src/components/ApiWatch.tsx delete mode 100644 src/components/Bday.tsx create mode 100644 src/components/CodeSandbox.tsx delete mode 100644 src/components/ControllerContent.tsx delete mode 100644 src/components/FormContext.tsx delete mode 100644 src/components/SideMenu.tsx delete mode 100644 src/components/UseFormContext.tsx delete mode 100644 src/components/ValidationResolver.tsx delete mode 100644 src/components/VideoList.module.css delete mode 100644 src/components/VideoList.tsx delete mode 100644 src/components/codeExamples/ErrorCodeTypes.ts delete mode 100644 src/components/codeExamples/accessibleCode.ts delete mode 100644 src/components/codeExamples/accessibleCodeBase.ts delete mode 100644 src/components/codeExamples/accessibleCodeFinal.ts delete mode 100644 src/components/codeExamples/ajvResolver.tsx delete mode 100644 src/components/codeExamples/asyncDefaultValue.ts delete mode 100644 src/components/codeExamples/asyncValues.ts delete mode 100644 src/components/codeExamples/clearError.ts delete mode 100644 src/components/codeExamples/clearErrorTs.ts delete mode 100644 src/components/codeExamples/conditionalComponent.tsx delete mode 100644 src/components/codeExamples/connectForm.ts delete mode 100644 src/components/codeExamples/control.ts delete mode 100644 src/components/codeExamples/controlTs.ts delete mode 100644 src/components/codeExamples/controlled.ts delete mode 100644 src/components/codeExamples/controlledMixedUncontrolled.ts delete mode 100644 src/components/codeExamples/controlledMixedUncontrolledInput.ts delete mode 100644 src/components/codeExamples/controller.ts delete mode 100644 src/components/codeExamples/controllerTs.ts delete mode 100644 src/components/codeExamples/customHookWithValidationResolver.tsx delete mode 100644 src/components/codeExamples/defaultExample.ts delete mode 100644 src/components/codeExamples/defaultExampleTs.tsx delete mode 100644 src/components/codeExamples/defaultValues.ts delete mode 100644 src/components/codeExamples/defaultValuesTs.ts delete mode 100644 src/components/codeExamples/enzymeInput.tsx delete mode 100644 src/components/codeExamples/errorCode.ts delete mode 100644 src/components/codeExamples/errorCodeTs.tsx delete mode 100644 src/components/codeExamples/errorMessageAdvance.ts delete mode 100644 src/components/codeExamples/fieldArray.tsx delete mode 100644 src/components/codeExamples/fieldArrayReset.ts delete mode 100644 src/components/codeExamples/focusController.tsx delete mode 100644 src/components/codeExamples/form.ts delete mode 100644 src/components/codeExamples/formContextPerformance.ts delete mode 100644 src/components/codeExamples/formWizard.ts delete mode 100644 src/components/codeExamples/getStarted.ts delete mode 100644 src/components/codeExamples/handleSubmitAsyncCode.ts delete mode 100644 src/components/codeExamples/handleSubmitCode.ts delete mode 100644 src/components/codeExamples/handleSubmitCodeTs.ts delete mode 100644 src/components/codeExamples/importKeystroke.ts delete mode 100644 src/components/codeExamples/initialValue.ts delete mode 100644 src/components/codeExamples/input.ts delete mode 100644 src/components/codeExamples/joiResolver.tsx delete mode 100644 src/components/codeExamples/joiResolverTs.ts delete mode 100644 src/components/codeExamples/manualValidation.ts delete mode 100644 src/components/codeExamples/multipleErrorCode.ts delete mode 100644 src/components/codeExamples/multipleErrorCodeTs.ts delete mode 100644 src/components/codeExamples/nativeValidation.ts delete mode 100644 src/components/codeExamples/reactNative.ts delete mode 100644 src/components/codeExamples/reactNativeController.ts delete mode 100644 src/components/codeExamples/resetCode.ts delete mode 100644 src/components/codeExamples/resetCodeControlled.ts delete mode 100644 src/components/codeExamples/resetCodeTs.ts delete mode 100644 src/components/codeExamples/resetController.ts delete mode 100644 src/components/codeExamples/resetControllerTs.ts delete mode 100644 src/components/codeExamples/resetFieldCode.ts delete mode 100644 src/components/codeExamples/resetFieldOptionCode.ts delete mode 100644 src/components/codeExamples/schemaValidation.ts delete mode 100644 src/components/codeExamples/schemaValidationTs.ts delete mode 100644 src/components/codeExamples/setFocus.ts delete mode 100644 src/components/codeExamples/setFocusTs.ts delete mode 100644 src/components/codeExamples/setValueUseFieldArray.ts delete mode 100644 src/components/codeExamples/setup.native.ts delete mode 100644 src/components/codeExamples/shareRef.ts delete mode 100644 src/components/codeExamples/shareRefTs.ts delete mode 100644 src/components/codeExamples/shouldUseNativeValidation.ts delete mode 100644 src/components/codeExamples/smartForm.ts delete mode 100644 src/components/codeExamples/strictlyTyped.ts delete mode 100644 src/components/codeExamples/submitReset.ts delete mode 100644 src/components/codeExamples/testingForm.ts delete mode 100644 src/components/codeExamples/toggleFields.tsx delete mode 100644 src/components/codeExamples/typeScript.ts delete mode 100644 src/components/codeExamples/unregisterCode.ts delete mode 100644 src/components/codeExamples/unregisterCodeTs.ts delete mode 100644 src/components/codeExamples/unregisterControlledComponent.tsx delete mode 100644 src/components/codeExamples/unregisterWrapControlledComponent.tsx delete mode 100644 src/components/codeExamples/useWatchTypes.ts delete mode 100644 src/components/codeExamples/validationResolver.ts delete mode 100644 src/components/codeExamples/validationResolverTs.tsx delete mode 100644 src/components/codeExamples/validationSchema.ts delete mode 100644 src/components/codeExamples/validationSchemaNative.ts delete mode 100644 src/components/codeExamples/validationSchemaTs.ts delete mode 100644 src/components/codeExamples/vestResolver.tsx delete mode 100644 src/components/codeExamples/virtualizedList.ts delete mode 100644 src/components/codeExamples/virtualizedListFieldArray.ts delete mode 100644 src/components/codeExamples/watchCode.ts delete mode 100644 src/components/codeExamples/watchCodeTs.ts delete mode 100644 src/components/codeExamples/watchCodeTypes.ts delete mode 100644 src/components/codeExamples/watchFieldArrayCode.ts delete mode 100644 src/components/codeExamples/zodResolver.ts delete mode 100644 src/components/codeExamples/zodResolverTs.ts delete mode 100644 src/components/react-app-env.d.ts delete mode 100644 src/components/useController/Controller.tsx delete mode 100644 src/components/useForm/ClearErrors.tsx delete mode 100644 src/components/useForm/Control.tsx delete mode 100644 src/components/useForm/HandleSubmit.tsx delete mode 100644 src/components/useForm/Reset.tsx delete mode 100644 src/components/useForm/SetFocus.tsx delete mode 100644 src/components/useForm/UnRegister.tsx delete mode 100644 src/components/useForm/Watch.tsx delete mode 100644 src/components/useForm/resetField.tsx create mode 100644 src/content/clear-errors.mdx create mode 100644 src/content/control.mdx create mode 100644 src/content/controller.mdx create mode 100644 src/content/handle-submit.mdx create mode 100644 src/content/reset-field.mdx create mode 100644 src/content/reset.mdx create mode 100644 src/content/set-focus.mdx create mode 100644 src/content/unregister.mdx create mode 100644 src/content/use-form-context.mdx rename src/content/{docs => }/use-form.mdx (96%) create mode 100644 src/content/watch.mdx delete mode 100644 src/data/advanced.tsx delete mode 100644 src/data/faq.tsx delete mode 100644 src/data/languages.js delete mode 100644 src/data/ts.tsx delete mode 100644 src/state/setting.ts diff --git a/.browserslistrc b/.browserslistrc deleted file mode 100644 index 93cda006d..000000000 --- a/.browserslistrc +++ /dev/null @@ -1,3 +0,0 @@ -> 0.25% -ie 11 -not op_mini all diff --git a/.lighthouserc.js b/.lighthouserc.js deleted file mode 100644 index 66dbfb720..000000000 --- a/.lighthouserc.js +++ /dev/null @@ -1,15 +0,0 @@ -module.exports = { - collect: { - autodiscoverUrlBlocklist: ["_gatsby/slices/_gatsby-scripts-1.html"], - }, - ci: { - upload: { - target: "temporary-public-storage", - }, - assert: { - assertions: { - "first-contentful-paint": ["error", { maxNumericValue: 3000 }], - }, - }, - }, -} diff --git a/package.json b/package.json index 2e64791dd..7e1a2d310 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "@mdx-js/react": "^2.3.0", "@next/mdx": "^13.4.4", "@types/node": "^20.2.5", + "class-variance-authority": "^0.6.0", "clsx": "^1.2.1", "little-state-machine": "^4.8.0", "next": "^13.4.4", @@ -18,12 +19,10 @@ "react": "18.2.0", "react-dom": "18.2.0", "react-github-btn": "1.4.0", - "react-helmet": "6.1.0", "react-hook-form": "6.0.0", "react-simple-animate": "^3.5.2", "react-simple-img": "3.0.0", "react-sortablejs": "1.5.1", - "react-syntax-highlighter": "^15.5.0", "rehype-mdx-code-props": "^1.0.0", "remark-custom-heading-id": "^1.0.1", "remark-emoji": "^3.1.1", diff --git a/src/components/Admonition.module.css b/src/components/Admonition.module.css new file mode 100644 index 000000000..023ca9909 --- /dev/null +++ b/src/components/Admonition.module.css @@ -0,0 +1,58 @@ +.admonition { + margin-bottom: 1em; + padding: 15px 30px 15px 15px; + border-radius: 0.4rem; +} + +.admonitionIcon { + display: inline-block; + vertical-align: middle; + margin-right: 0.2em; +} + +.admonitionIcon svg { + display: inline-block; + width: 22px; + height: 22px; + stroke-width: 0; +} + +.admonitionIcon svg { + stroke: rgb(253, 253, 254); + fill: rgb(253, 253, 254); +} + +.admonitionContent > :last-child { + margin-bottom: 0; +} + +/** Customization */ +.admonitionWarning { + background-color: rgba(230, 126, 34, 0.1); + border-left: 8px solid #e67e22; +} + +.admonitionTip { + background-color: rgba(46, 204, 113, 0.1); + border-left: 8px solid #2ecc71; +} + +.admonitionCaution { + background-color: rgba(231, 76, 60, 0.1); + border-left: 8px solid #e74c3c; +} + +.admonitionImportant { + background-color: rgb(25, 60, 71, 0.1); + border-left: 8px solid rgb(76, 179, 212, 0.1); +} + +.admonitionNote { + background-color: rgb(71, 71, 72, 0.1); + border-left: 8px solid rgb(212, 213, 216); +} + +.admonitionQuestion { + background-color: rgba(8, 61, 119, 0.1); + border-left: 8px solid #083d77; +} diff --git a/src/components/Admonition.tsx b/src/components/Admonition.tsx new file mode 100644 index 000000000..edb3fd063 --- /dev/null +++ b/src/components/Admonition.tsx @@ -0,0 +1,113 @@ +import styles from "./Admonition.module.css" +import { cva } from "class-variance-authority" + +/** + * Octicons Icons by GitHub released under MIT License + * https://github.com/primer/octicons/ + */ + +const svgMap = { + warning: ( + + + + ), + important: ( + + + + ), + caution: ( + + + + ), + tip: ( + + + + ), + note: ( + + + + ), + question: ( + + + + ), +} + +const admonition = cva(styles.admonition, { + variants: { + type: { + warning: styles.admonitionWarning, + important: styles.admonitionImportant, + caution: styles.admonitionCaution, + tip: styles.admonitionTip, + note: styles.admonitionNote, + question: styles.admonitionQuestion, + }, + }, +}) + +export const Admonition = ({ type, title, children }) => { + return ( +
+
+ {svgMap[type]}{" "} + {title?.toUpperCase() || type.toUpperCase()} +
+
{children}
+
+ ) +} diff --git a/src/components/ApiErrors.tsx b/src/components/ApiErrors.tsx deleted file mode 100644 index 4f45159a2..000000000 --- a/src/components/ApiErrors.tsx +++ /dev/null @@ -1,113 +0,0 @@ -import { memo } from "react" -import CodeArea from "./CodeArea" -import errorCode from "./codeExamples/errorCode" -import errorCodeTs from "./codeExamples/errorCodeTs" -import errorCodeTypes from "./codeExamples/ErrorCodeTypes" -import generic from "../data/generic" -import multipleErrorCode from "./codeExamples/multipleErrorCode" -import multipleErrorCodeTs from "./codeExamples/multipleErrorCodeTs" -import TabGroup from "./TabGroup" -import typographyStyles from "../styles/typography.module.css" -import tableStyles from "../styles/table.module.css" - -function ApiErrors({ - api, - goToSection, -}: { - api: any - goToSection: (name: string, animate?: boolean) => void -}) { - return ( - <> - -

- errors:{" "} - {`Record`} -

-
- - {api.errors.description} - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
{generic.name} - {generic.type} - {generic.description}
- type - - string - Error {generic.type}. eg: required, min, max, minLength
- types - - {`Record<{ string, string | boolean }>`} - {api.errors.types}
- message - - - string | React.ReactElement - - {api.errors.message}
- ref - - React.Ref - {api.errors.ref}
- {api.errors.note(goToSection)} -
- - - - - - -
- - ) -} - -export default memo(ApiErrors) diff --git a/src/components/ApiWatch.tsx b/src/components/ApiWatch.tsx deleted file mode 100644 index fde39656d..000000000 --- a/src/components/ApiWatch.tsx +++ /dev/null @@ -1,212 +0,0 @@ -import CodeArea from "./CodeArea" -import watchCode from "./codeExamples/watchCode" -import watchCodeTs from "./codeExamples/watchCodeTs" -import generic from "../data/generic" -import typographyStyles from "../styles/typography.module.css" -import tableStyles from "../styles/table.module.css" -import TabGroup from "./TabGroup" -import watchFieldArrayCode from "./codeExamples/watchFieldArrayCode" -import StarRepo from "./StarRepo" -import Link from "next/link" - -export default function ApiWatch({ api }: { api: any }) { - return ( - <> - -

- watch:{" "} - {`(names?: string | string[] | (data, options) => void) => unknown`} -

-
- - {api.watch.description} - -

Props

- -
- - - - - - - - - - - - - - - - - - - - - - - -
- {generic.type} - - {generic.description} -
- string - {api.watch.tableTitle.single}
- string[] - {api.watch.tableTitle.multiple}
- undefined - {api.watch.tableTitle.all}
- {`(data: unknown, { name: string, type: string }) => void`} - {api.watch.tableTitle.callback}
-
- -

Return

- -
- - - - - - - - - - - - - - - - - - - - - - - -
- {generic.example} - - {generic.return} -
- watch('inputName') - - unknown -
- watch(['inputName1']) - - unknown[] -
- watch() - - {`{[key:string]: unknown}`} -
- {`watch((data, { name, type }) => console.log(data, name, type))`} - - {`{ unsubscribe: () => void }`} -
-
- -

- Rules -

- - - -

- Examples -

- - - - - - -

Video

- -

- The following video tutorial demonstrates watch API. -

- -