|
| 1 | +// @ts-check |
1 | 2 | import { |
2 | 3 | Wrapper, |
3 | | - useUiExtension, |
4 | 4 | FieldExtensionType, |
5 | 5 | FieldExtensionFeature, |
| 6 | + useFieldExtension, |
| 7 | + ExtensionType, |
6 | 8 | } from '@graphcms/uix-react-sdk'; |
7 | | -import { useRouter } from 'next/router'; |
8 | 9 |
|
9 | 10 | function MyField() { |
10 | | - const { value, onChange } = useUiExtension(); |
11 | | - |
12 | | - return ( |
13 | | - <input |
14 | | - value={value} |
15 | | - onChange={({ target: { value: val } }) => onChange(val)} |
16 | | - /> |
17 | | - ); |
| 11 | + const { value, onChange } = useFieldExtension(); |
| 12 | + return <input value={value} onChange={(e) => onChange(e.target.value)} />; |
18 | 13 | } |
19 | 14 |
|
20 | | -export default function MyCustomInputExtensionPage() { |
21 | | - const router = useRouter(); |
22 | | - |
23 | | - const { extensionUid } = router.query; |
24 | | - |
25 | | - if (!extensionUid) return null; |
26 | | - |
27 | | - const declaration = { |
28 | | - extensionType: 'field', |
29 | | - fieldType: FieldExtensionType.STRING, |
30 | | - name: 'My custom field', |
31 | | - features: [FieldExtensionFeature.FieldRenderer], |
32 | | - }; |
| 15 | +/** @type {import('@graphcms/uix-react-sdk').FieldExtensionDeclaration} */ |
| 16 | +const declaration = { |
| 17 | + extensionType: ExtensionType.field, |
| 18 | + fieldType: FieldExtensionType.STRING, |
| 19 | + name: 'My custom field', |
| 20 | + features: [FieldExtensionFeature.FieldRenderer], |
| 21 | +}; |
33 | 22 |
|
| 23 | +export default function MyCustomInputExtensionPage() { |
34 | 24 | return ( |
35 | | - <Wrapper uid={extensionUid} declaration={declaration}> |
| 25 | + <Wrapper declaration={declaration}> |
36 | 26 | <MyField /> |
37 | 27 | </Wrapper> |
38 | 28 | ); |
|
0 commit comments