@tinacms/app 0.0.0-98df118-20250227044321 → 0.0.0-98fbc94-20250928224422
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +121 -11
- package/index.html +1 -1
- package/package.json +7 -3
- package/src/App.tsx +24 -24
- package/src/Playground.tsx +56 -58
- package/src/dummy-client.ts +1 -1
- package/src/fields/rich-text/index.tsx +2 -2
- package/src/fields/rich-text/monaco/error-message.tsx +59 -59
- package/src/fields/rich-text/monaco/index.tsx +68 -74
- package/src/fields/rich-text/monaco/use-debounce.ts +8 -8
- package/src/global.css +3 -3
- package/src/index.css +19 -15
- package/src/lib/build-form.ts +24 -24
- package/src/lib/errors.tsx +7 -7
- package/src/lib/expand-query.ts +74 -69
- package/src/lib/graphql-reducer.ts +295 -277
- package/src/lib/types.ts +34 -33
- package/src/lib/util.ts +48 -53
- package/src/main.tsx +7 -7
- package/src/preflight.css +10 -10
- package/src/preview.tsx +12 -12
- package/src/vite-env.d.ts +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,12 +1,122 @@
|
|
|
1
1
|
# @tinacms/app
|
|
2
2
|
|
|
3
|
-
## 0.0.0-
|
|
3
|
+
## 0.0.0-98fbc94-20250928224422
|
|
4
4
|
|
|
5
5
|
### Patch Changes
|
|
6
6
|
|
|
7
|
-
- Updated dependencies [[`
|
|
8
|
-
- tinacms@0.0.0-
|
|
9
|
-
|
|
7
|
+
- Updated dependencies [[`98fbc94`](https://github.com/tinacms/tinacms/commit/98fbc941a07fbc52edafaeb43b49b5ea30ea4172), [`ced9076`](https://github.com/tinacms/tinacms/commit/ced9076d25d7177bd8d9ae3c6133d0560366511c)]:
|
|
8
|
+
- tinacms@0.0.0-98fbc94-20250928224422
|
|
9
|
+
|
|
10
|
+
## 2.3.3
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- Updated dependencies [[`ea917dd`](https://github.com/tinacms/tinacms/commit/ea917dd2840c955d462b66b58009d2a16da39377), [`b012b6c`](https://github.com/tinacms/tinacms/commit/b012b6c7fae2674c613fd4c54e1819a86c6d2c3e), [`39e5b05`](https://github.com/tinacms/tinacms/commit/39e5b0562af7bca1e2923fc94b7c8119e12a0133), [`55e018b`](https://github.com/tinacms/tinacms/commit/55e018b9826a540005bbadf8fd51e9bac456d531)]:
|
|
15
|
+
- tinacms@2.8.3
|
|
16
|
+
|
|
17
|
+
## 2.3.2
|
|
18
|
+
|
|
19
|
+
### Patch Changes
|
|
20
|
+
|
|
21
|
+
- Updated dependencies [[`eaa6ed5`](https://github.com/tinacms/tinacms/commit/eaa6ed551c76349c5849cd1e19a8066ecbbe205c), [`60a15d5`](https://github.com/tinacms/tinacms/commit/60a15d533b85a0c3f9f483f6f0f0b6824616284b), [`2fb1c4e`](https://github.com/tinacms/tinacms/commit/2fb1c4e79d1cae5ab29c3f93b0867214e193f59c)]:
|
|
22
|
+
- tinacms@2.8.2
|
|
23
|
+
- @tinacms/mdx@1.8.1
|
|
24
|
+
|
|
25
|
+
## 2.3.1
|
|
26
|
+
|
|
27
|
+
### Patch Changes
|
|
28
|
+
|
|
29
|
+
- Updated dependencies [[`41359ed`](https://github.com/tinacms/tinacms/commit/41359edaf08def7a5e26969ec114155038c09752), [`b20a2c4`](https://github.com/tinacms/tinacms/commit/b20a2c4fd64fa2d06711850db63fb317302ee361), [`41359ed`](https://github.com/tinacms/tinacms/commit/41359edaf08def7a5e26969ec114155038c09752)]:
|
|
30
|
+
- tinacms@2.8.1
|
|
31
|
+
|
|
32
|
+
## 2.3.0
|
|
33
|
+
|
|
34
|
+
### Minor Changes
|
|
35
|
+
|
|
36
|
+
- [#5744](https://github.com/tinacms/tinacms/pull/5744) [`98a61e2`](https://github.com/tinacms/tinacms/commit/98a61e2d263978a7096cc23ac7e94aa0039981be) Thanks [@Ben0189](https://github.com/Ben0189)! - Upgrade Plate editor to v48 beta, integrating latest features and improvements.
|
|
37
|
+
|
|
38
|
+
### Patch Changes
|
|
39
|
+
|
|
40
|
+
- Updated dependencies [[`98a61e2`](https://github.com/tinacms/tinacms/commit/98a61e2d263978a7096cc23ac7e94aa0039981be)]:
|
|
41
|
+
- @tinacms/mdx@1.8.0
|
|
42
|
+
- tinacms@2.8.0
|
|
43
|
+
|
|
44
|
+
## 2.2.10
|
|
45
|
+
|
|
46
|
+
### Patch Changes
|
|
47
|
+
|
|
48
|
+
- [#5833](https://github.com/tinacms/tinacms/pull/5833) [`5269d65`](https://github.com/tinacms/tinacms/commit/5269d6578d361c55326f39375eaa175707342d51) Thanks [@JackDevAU](https://github.com/JackDevAU)! - 🐛 FIX - Visual Editor Webpack HMR loading issue
|
|
49
|
+
|
|
50
|
+
- Updated dependencies [[`5269d65`](https://github.com/tinacms/tinacms/commit/5269d6578d361c55326f39375eaa175707342d51), [`3026a2b`](https://github.com/tinacms/tinacms/commit/3026a2b492113a53c036e43d5d85837cea4a6de3), [`28a94a6`](https://github.com/tinacms/tinacms/commit/28a94a602186f48b528b91236007839e5d02a9de)]:
|
|
51
|
+
- tinacms@2.7.10
|
|
52
|
+
|
|
53
|
+
## 2.2.9
|
|
54
|
+
|
|
55
|
+
### Patch Changes
|
|
56
|
+
|
|
57
|
+
- [#5741](https://github.com/tinacms/tinacms/pull/5741) [`0e9de37`](https://github.com/tinacms/tinacms/commit/0e9de379dab2970206b9b60eb014808662f67287) Thanks [@wicksipedia](https://github.com/wicksipedia)! - CMS admin UI - Refactor Sidebar and Branch Button Components
|
|
58
|
+
Forms header - Adds breadcrumb navigation
|
|
59
|
+
|
|
60
|
+
- [#5784](https://github.com/tinacms/tinacms/pull/5784) [`b25c5f0`](https://github.com/tinacms/tinacms/commit/b25c5f0b0e1d3f37870b780230b41dbc56bef1ab) Thanks [@JackDevAU](https://github.com/JackDevAU)! - - Fixed padding issues in FormLists
|
|
61
|
+
|
|
62
|
+
- Fixed Visual Editing's "Edit" button (Reference Fields)
|
|
63
|
+
|
|
64
|
+
- [#5789](https://github.com/tinacms/tinacms/pull/5789) [`5040a6a`](https://github.com/tinacms/tinacms/commit/5040a6aa24e62166d942c47b61a3f18585caded6) Thanks [@JackDevAU](https://github.com/JackDevAU)! - ✨ Adds click to focus for nested objects
|
|
65
|
+
|
|
66
|
+
- Updated dependencies [[`2a3ed6c`](https://github.com/tinacms/tinacms/commit/2a3ed6c3ec3233fd90fd94f3dd3d0243aaad079a), [`bc47f93`](https://github.com/tinacms/tinacms/commit/bc47f938431c400714808613f633b05659a87be1), [`0e9de37`](https://github.com/tinacms/tinacms/commit/0e9de379dab2970206b9b60eb014808662f67287), [`468f0ee`](https://github.com/tinacms/tinacms/commit/468f0eefc0a15a9a9a23737d29ea9a5cb5c6aef6), [`e27c017`](https://github.com/tinacms/tinacms/commit/e27c0172005797af93b908152d51b2966c0cf059), [`b25c5f0`](https://github.com/tinacms/tinacms/commit/b25c5f0b0e1d3f37870b780230b41dbc56bef1ab), [`5040a6a`](https://github.com/tinacms/tinacms/commit/5040a6aa24e62166d942c47b61a3f18585caded6), [`dbef36f`](https://github.com/tinacms/tinacms/commit/dbef36f594b949024d5525184b6a9e1b9085b759), [`3ba6d78`](https://github.com/tinacms/tinacms/commit/3ba6d78f35f817d55bfc3d12b750e54b7e0d11f2)]:
|
|
67
|
+
- tinacms@2.7.9
|
|
68
|
+
- @tinacms/mdx@1.7.0
|
|
69
|
+
|
|
70
|
+
## 2.2.8
|
|
71
|
+
|
|
72
|
+
### Patch Changes
|
|
73
|
+
|
|
74
|
+
- Updated dependencies [[`5e36123`](https://github.com/tinacms/tinacms/commit/5e361239a372e21dda624d17b4ff274bab23ce90), [`856e07a`](https://github.com/tinacms/tinacms/commit/856e07a0b8d742ee78d5eba565623cf081a61534), [`4d9c8ab`](https://github.com/tinacms/tinacms/commit/4d9c8abf6badd1bcc833bda432ab22dace4925ae), [`7346dc9`](https://github.com/tinacms/tinacms/commit/7346dc996fd81ecb395b62f373976512e8224c21)]:
|
|
75
|
+
- tinacms@2.7.8
|
|
76
|
+
- @tinacms/mdx@1.6.3
|
|
77
|
+
|
|
78
|
+
## 2.2.7
|
|
79
|
+
|
|
80
|
+
### Patch Changes
|
|
81
|
+
|
|
82
|
+
- [#5607](https://github.com/tinacms/tinacms/pull/5607) [`1965236`](https://github.com/tinacms/tinacms/commit/19652363784e48b065ec1924a9cd9611c8e79cae) Thanks [@jeffsee55](https://github.com/jeffsee55)! - Specify react and react-dom as peer deps
|
|
83
|
+
|
|
84
|
+
- Updated dependencies [[`1965236`](https://github.com/tinacms/tinacms/commit/19652363784e48b065ec1924a9cd9611c8e79cae)]:
|
|
85
|
+
- tinacms@2.7.7
|
|
86
|
+
|
|
87
|
+
## 2.2.6
|
|
88
|
+
|
|
89
|
+
### Patch Changes
|
|
90
|
+
|
|
91
|
+
- Updated dependencies [[`65cee5d`](https://github.com/tinacms/tinacms/commit/65cee5d6ae16c7320a4a14f0d9a82dc5f9103e34)]:
|
|
92
|
+
- tinacms@2.7.6
|
|
93
|
+
|
|
94
|
+
## 2.2.5
|
|
95
|
+
|
|
96
|
+
### Patch Changes
|
|
97
|
+
|
|
98
|
+
- [#5602](https://github.com/tinacms/tinacms/pull/5602) [`ab43169`](https://github.com/tinacms/tinacms/commit/ab43169af5a95f31fa27bb0236623a031883a1fd) Thanks [@wicksipedia](https://github.com/wicksipedia)! - fix naming of TinaCloud
|
|
99
|
+
|
|
100
|
+
- [#5588](https://github.com/tinacms/tinacms/pull/5588) [`fd664d8`](https://github.com/tinacms/tinacms/commit/fd664d8f4e83941ed1b1f234668ab6341a6178f8) Thanks [@JackDevAU](https://github.com/JackDevAU)! - - Fix server-side branch queries by storing the active branch in a cookie and passing it via the x-branch header.
|
|
101
|
+
- Ensure GraphQL playground correctly updates when switching branches.
|
|
102
|
+
- Updated dependencies [[`921f235`](https://github.com/tinacms/tinacms/commit/921f2356e4615d532d02eefa7103fdb70f83b97a), [`ab43169`](https://github.com/tinacms/tinacms/commit/ab43169af5a95f31fa27bb0236623a031883a1fd), [`b551232`](https://github.com/tinacms/tinacms/commit/b5512326ad0ad9855bc75e2073a3ab2a8ec4c064), [`ea204c9`](https://github.com/tinacms/tinacms/commit/ea204c9045451f3ebea04f503e6158d2016613e4), [`fd664d8`](https://github.com/tinacms/tinacms/commit/fd664d8f4e83941ed1b1f234668ab6341a6178f8)]:
|
|
103
|
+
- tinacms@2.7.5
|
|
104
|
+
- @tinacms/mdx@1.6.2
|
|
105
|
+
|
|
106
|
+
## 2.2.3
|
|
107
|
+
|
|
108
|
+
### Patch Changes
|
|
109
|
+
|
|
110
|
+
- Updated dependencies [[`991db1f`](https://github.com/tinacms/tinacms/commit/991db1f10c1f9cf9211d7e82bd56658cdcce24c7)]:
|
|
111
|
+
- tinacms@2.7.3
|
|
112
|
+
|
|
113
|
+
## 2.2.2
|
|
114
|
+
|
|
115
|
+
### Patch Changes
|
|
116
|
+
|
|
117
|
+
- Updated dependencies [[`619e601`](https://github.com/tinacms/tinacms/commit/619e6010d6f95d893e980952bef64f747808c956), [`602b4d0`](https://github.com/tinacms/tinacms/commit/602b4d07f94de4c10d5bb059a5edc49546a2031c)]:
|
|
118
|
+
- tinacms@2.7.2
|
|
119
|
+
- @tinacms/mdx@1.6.1
|
|
10
120
|
|
|
11
121
|
## 2.2.1
|
|
12
122
|
|
|
@@ -454,7 +564,7 @@
|
|
|
454
564
|
|
|
455
565
|
fix: Use clean page-sizes on media manager (to make pagination more obvious)
|
|
456
566
|
|
|
457
|
-
Fix issue with uploading media in a folder with
|
|
567
|
+
Fix issue with uploading media in a folder with TinaCloud
|
|
458
568
|
|
|
459
569
|
- Updated dependencies [9c27087fb]
|
|
460
570
|
- Updated dependencies [65d0a701f]
|
|
@@ -777,7 +887,7 @@
|
|
|
777
887
|
> NOTE: Relative paths are fine to use here, but make sure it's relative to the `.tina/config` file
|
|
778
888
|
|
|
779
889
|
```ts
|
|
780
|
-
localContentPath: process.env.REMOTE_ROOT_PATH // eg. '../../my-content-repo'
|
|
890
|
+
localContentPath: process.env.REMOTE_ROOT_PATH; // eg. '../../my-content-repo'
|
|
781
891
|
```
|
|
782
892
|
|
|
783
893
|
### Production workflow
|
|
@@ -821,18 +931,18 @@
|
|
|
821
931
|
EX:
|
|
822
932
|
|
|
823
933
|
```ts
|
|
824
|
-
import { defineConfig } from
|
|
934
|
+
import { defineConfig } from "tinacms";
|
|
825
935
|
|
|
826
936
|
export default defineConfig({
|
|
827
937
|
admin: {
|
|
828
938
|
auth: {
|
|
829
939
|
onLogin: () => {
|
|
830
|
-
console.log(
|
|
940
|
+
console.log("On Log in!");
|
|
831
941
|
},
|
|
832
942
|
},
|
|
833
943
|
},
|
|
834
944
|
/// ...
|
|
835
|
-
})
|
|
945
|
+
});
|
|
836
946
|
```
|
|
837
947
|
|
|
838
948
|
- 9d4943a82: Fix issue resolving alias fields when passing through the `useTina` hook
|
|
@@ -1055,13 +1165,13 @@
|
|
|
1055
1165
|
|
|
1056
1166
|
```ts
|
|
1057
1167
|
// .tina/config.ts
|
|
1058
|
-
import schema from
|
|
1168
|
+
import schema from "./schema";
|
|
1059
1169
|
|
|
1060
1170
|
export default defineConfig({
|
|
1061
1171
|
schema: schema,
|
|
1062
1172
|
//.. Everything from define config in `schema.ts`
|
|
1063
1173
|
//.. Everything from `schema.config`
|
|
1064
|
-
})
|
|
1174
|
+
});
|
|
1065
1175
|
```
|
|
1066
1176
|
|
|
1067
1177
|
2. Add Build config
|
package/index.html
CHANGED
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
the assets for this page.\
|
|
52
52
|
</p>\
|
|
53
53
|
<p>\
|
|
54
|
-
Please visit <a href="https://tina.io/docs/
|
|
54
|
+
Please visit <a href="https://tina.io/docs/r/FAQ/#13-how-do-i-resolve-failed-loading-tinacms-assets-error">this doc</a> for help.\
|
|
55
55
|
</p>\
|
|
56
56
|
</div>'
|
|
57
57
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tinacms/app",
|
|
3
|
-
"version": "0.0.0-
|
|
3
|
+
"version": "0.0.0-98fbc94-20250928224422",
|
|
4
4
|
"main": "src/main.tsx",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"devDependencies": {
|
|
@@ -8,6 +8,10 @@
|
|
|
8
8
|
"@types/react-dom": "^18.3.5",
|
|
9
9
|
"typescript": "^5.7.3"
|
|
10
10
|
},
|
|
11
|
+
"peerDependencies": {
|
|
12
|
+
"react": ">=18.3.1 <20.0.0",
|
|
13
|
+
"react-dom": ">=18.3.1 <20.0.0"
|
|
14
|
+
},
|
|
11
15
|
"dependencies": {
|
|
12
16
|
"@graphiql/toolkit": "0.8.4",
|
|
13
17
|
"@headlessui/react": "2.1.8",
|
|
@@ -22,7 +26,7 @@
|
|
|
22
26
|
"react-router-dom": "6.3.0",
|
|
23
27
|
"typescript": "^5.7.3",
|
|
24
28
|
"zod": "^3.24.2",
|
|
25
|
-
"@tinacms/mdx": "
|
|
26
|
-
"tinacms": "0.0.0-
|
|
29
|
+
"@tinacms/mdx": "1.8.1",
|
|
30
|
+
"tinacms": "0.0.0-98fbc94-20250928224422"
|
|
27
31
|
}
|
|
28
32
|
}
|
package/src/App.tsx
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import React, { Suspense } from 'react'
|
|
2
|
-
import TinaCMS, { TinaAdmin, useCMS, MdxFieldPluginExtendible } from 'tinacms'
|
|
3
|
-
import { Preview } from './preview'
|
|
4
|
-
import Playground from './Playground'
|
|
1
|
+
import React, { Suspense } from 'react';
|
|
2
|
+
import TinaCMS, { TinaAdmin, useCMS, MdxFieldPluginExtendible } from 'tinacms';
|
|
3
|
+
import { Preview } from './preview';
|
|
4
|
+
import Playground from './Playground';
|
|
5
5
|
|
|
6
6
|
// TODO: Resolve this to local file in tsconfig.json
|
|
7
7
|
// @ts-expect-error
|
|
8
|
-
import config from 'TINA_IMPORT'
|
|
8
|
+
import config from 'TINA_IMPORT';
|
|
9
9
|
// @ts-expect-error
|
|
10
|
-
import schemaJson from 'SCHEMA_IMPORT'
|
|
10
|
+
import schemaJson from 'SCHEMA_IMPORT';
|
|
11
11
|
// @ts-expect-error
|
|
12
|
-
import staticMedia from 'STATIC_MEDIA_IMPORT'
|
|
12
|
+
import staticMedia from 'STATIC_MEDIA_IMPORT';
|
|
13
13
|
|
|
14
|
-
const RawEditor = React.lazy(() => import('./fields/rich-text'))
|
|
14
|
+
const RawEditor = React.lazy(() => import('./fields/rich-text'));
|
|
15
15
|
|
|
16
16
|
const Editor = (props) => {
|
|
17
|
-
const [rawMode, setRawMode] = React.useState(false)
|
|
17
|
+
const [rawMode, setRawMode] = React.useState(false);
|
|
18
18
|
return (
|
|
19
19
|
<MdxFieldPluginExtendible.Component
|
|
20
20
|
rawMode={rawMode}
|
|
@@ -26,32 +26,32 @@ const Editor = (props) => {
|
|
|
26
26
|
</Suspense>
|
|
27
27
|
}
|
|
28
28
|
/>
|
|
29
|
-
)
|
|
30
|
-
}
|
|
29
|
+
);
|
|
30
|
+
};
|
|
31
31
|
|
|
32
32
|
const SetPreview = () => {
|
|
33
|
-
const cms = useCMS()
|
|
33
|
+
const cms = useCMS();
|
|
34
34
|
React.useEffect(() => {
|
|
35
35
|
// Override original 'rich-text' field with one that has raw mode support
|
|
36
36
|
cms.fields.add({
|
|
37
37
|
...MdxFieldPluginExtendible,
|
|
38
38
|
Component: Editor,
|
|
39
|
-
})
|
|
40
|
-
const basePath = __BASE_PATH__.replace(/^\/|\/$/g, '')
|
|
41
|
-
cms.flags.set('tina-basepath', basePath)
|
|
39
|
+
});
|
|
40
|
+
const basePath = __BASE_PATH__.replace(/^\/|\/$/g, '');
|
|
41
|
+
cms.flags.set('tina-basepath', basePath);
|
|
42
42
|
cms.flags.set(
|
|
43
43
|
'tina-preview',
|
|
44
44
|
`${basePath ? `${basePath}/` : ''}${config.build.outputFolder.replace(
|
|
45
45
|
/^\/|\/$/g,
|
|
46
46
|
''
|
|
47
47
|
)}`
|
|
48
|
-
)
|
|
49
|
-
}, [])
|
|
50
|
-
return null
|
|
51
|
-
}
|
|
48
|
+
);
|
|
49
|
+
}, []);
|
|
50
|
+
return null;
|
|
51
|
+
};
|
|
52
52
|
|
|
53
53
|
export const TinaAdminWrapper = () => {
|
|
54
|
-
const schema = { ...config?.schema, config }
|
|
54
|
+
const schema = { ...config?.schema, config };
|
|
55
55
|
return (
|
|
56
56
|
// @ts-ignore JSX element type 'TinaCMS' does not have any construct or call signatures.ts(2604)
|
|
57
57
|
<TinaCMS
|
|
@@ -70,10 +70,10 @@ export const TinaAdminWrapper = () => {
|
|
|
70
70
|
schemaJson={schemaJson}
|
|
71
71
|
/>
|
|
72
72
|
</TinaCMS>
|
|
73
|
-
)
|
|
74
|
-
}
|
|
73
|
+
);
|
|
74
|
+
};
|
|
75
75
|
|
|
76
76
|
function App() {
|
|
77
|
-
return <TinaAdminWrapper
|
|
77
|
+
return <TinaAdminWrapper />;
|
|
78
78
|
}
|
|
79
|
-
export default App
|
|
79
|
+
export default App;
|
package/src/Playground.tsx
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
import { createGraphiQLFetcher } from '@graphiql/toolkit'
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import {
|
|
6
|
-
import
|
|
7
|
-
import {
|
|
1
|
+
import { createGraphiQLFetcher } from '@graphiql/toolkit';
|
|
2
|
+
import { FolderIcon } from '@heroicons/react/outline';
|
|
3
|
+
import { queries } from 'CLIENT_IMPORT';
|
|
4
|
+
import { GraphiQL } from 'graphiql';
|
|
5
|
+
import { parse, print } from 'graphql';
|
|
6
|
+
import React from 'react';
|
|
7
|
+
import { useCMS } from 'tinacms';
|
|
8
8
|
|
|
9
|
-
import 'graphiql/graphiql.min.css'
|
|
9
|
+
import 'graphiql/graphiql.min.css';
|
|
10
10
|
|
|
11
11
|
const Playground = () => {
|
|
12
|
-
const cms = useCMS()
|
|
13
|
-
const [query, setQuery] = React.useState('')
|
|
14
|
-
const [variables, setVariables] = React.useState('')
|
|
15
|
-
const [autoQueries, setAutoQueries] = React.useState()
|
|
12
|
+
const cms = useCMS();
|
|
13
|
+
const [query, setQuery] = React.useState('');
|
|
14
|
+
const [variables, setVariables] = React.useState('');
|
|
15
|
+
const [autoQueries, setAutoQueries] = React.useState();
|
|
16
16
|
const [collectionInfo, setCollectionInfo] = React.useState<{
|
|
17
17
|
collections: {
|
|
18
|
-
name: string
|
|
19
|
-
documents: { edges: { node: { _sys: { relativePath: string } } }[] }
|
|
20
|
-
}[]
|
|
21
|
-
}>()
|
|
18
|
+
name: string;
|
|
19
|
+
documents: { edges: { node: { _sys: { relativePath: string } } }[] };
|
|
20
|
+
}[];
|
|
21
|
+
}>();
|
|
22
22
|
React.useEffect(() => {
|
|
23
23
|
const run = async () => {
|
|
24
24
|
if (queries) {
|
|
25
|
-
const q = queries({ request: async () => query })
|
|
25
|
+
const q = queries({ request: async () => query });
|
|
26
26
|
setCollectionInfo(
|
|
27
27
|
await cms.api.tina.request(
|
|
28
28
|
`
|
|
@@ -45,52 +45,50 @@ const Playground = () => {
|
|
|
45
45
|
`,
|
|
46
46
|
{ variables: {} }
|
|
47
47
|
)
|
|
48
|
-
)
|
|
49
|
-
setAutoQueries(q)
|
|
48
|
+
);
|
|
49
|
+
setAutoQueries(q);
|
|
50
50
|
} else {
|
|
51
|
-
setAutoQueries({})
|
|
51
|
+
setAutoQueries({});
|
|
52
52
|
}
|
|
53
|
-
}
|
|
54
|
-
run()
|
|
55
|
-
}, [])
|
|
53
|
+
};
|
|
54
|
+
run();
|
|
55
|
+
}, []);
|
|
56
56
|
|
|
57
|
-
const ref = React.useRef()
|
|
57
|
+
const ref = React.useRef();
|
|
58
58
|
|
|
59
59
|
const getToken = () => {
|
|
60
|
-
return JSON.parse(localStorage.getItem('tinacms-auth') || '{}')?.id_token
|
|
61
|
-
}
|
|
60
|
+
return JSON.parse(localStorage.getItem('tinacms-auth') || '{}')?.id_token;
|
|
61
|
+
};
|
|
62
62
|
|
|
63
63
|
if (!autoQueries) {
|
|
64
|
-
return null
|
|
64
|
+
return null;
|
|
65
65
|
}
|
|
66
66
|
|
|
67
67
|
const Plugin = () => {
|
|
68
|
-
const noAutoQueries = Object.keys(autoQueries).length === 0
|
|
68
|
+
const noAutoQueries = Object.keys(autoQueries).length === 0;
|
|
69
69
|
return (
|
|
70
70
|
<div>
|
|
71
|
-
<div className=
|
|
72
|
-
<div className=
|
|
73
|
-
<div className=
|
|
71
|
+
<div className='graphiql-doc-explorer-title'>Queries</div>
|
|
72
|
+
<div className='graphiql-doc-explorer-content'>
|
|
73
|
+
<div className='graphiql-markdown-description'>
|
|
74
74
|
{noAutoQueries
|
|
75
75
|
? 'No auto-generated queries found, the Tina config is likely set to client.skip = true'
|
|
76
76
|
: "Tina's auto-generated queries can be found here as well as any queries you may have defined yourself."}{' '}
|
|
77
|
-
<a href=
|
|
78
|
-
Learn more here
|
|
79
|
-
</a>
|
|
77
|
+
<a href='https://tina.io/docs/r/custom-queries/'>Learn more here</a>
|
|
80
78
|
</div>
|
|
81
|
-
<nav className=
|
|
79
|
+
<nav className='space-y-1' aria-label='Sidebar'>
|
|
82
80
|
<ul>
|
|
83
81
|
{Object.entries(autoQueries).map(([key, value]) => {
|
|
84
82
|
const collection = collectionInfo?.collections.find(
|
|
85
83
|
({ name }) => name === key
|
|
86
|
-
)
|
|
87
|
-
let variables = ''
|
|
88
|
-
let relativePath = ''
|
|
84
|
+
);
|
|
85
|
+
let variables = '';
|
|
86
|
+
let relativePath = '';
|
|
89
87
|
if (collection) {
|
|
90
88
|
relativePath =
|
|
91
89
|
collection?.documents?.edges[0]?.node?._sys.relativePath ||
|
|
92
|
-
''
|
|
93
|
-
variables = JSON.stringify({ relativePath }, null, 2)
|
|
90
|
+
'';
|
|
91
|
+
variables = JSON.stringify({ relativePath }, null, 2);
|
|
94
92
|
}
|
|
95
93
|
return (
|
|
96
94
|
<li>
|
|
@@ -100,47 +98,47 @@ const Playground = () => {
|
|
|
100
98
|
false
|
|
101
99
|
? 'bg-gray-100 text-gray-900'
|
|
102
100
|
: 'text-gray-600 hover:bg-gray-50 hover:text-gray-900',
|
|
103
|
-
'flex items-center rounded
|
|
101
|
+
'flex items-center rounded px-3 py-2 text-sm font-medium w-full text-left'
|
|
104
102
|
)}
|
|
105
103
|
onClick={async () => {
|
|
106
104
|
if (typeof value === 'function') {
|
|
107
|
-
const v = await value({})
|
|
108
|
-
const ast = parse(v.query)
|
|
109
|
-
setVariables(variables)
|
|
110
|
-
setQuery(print(ast))
|
|
105
|
+
const v = await value({});
|
|
106
|
+
const ast = parse(v.query);
|
|
107
|
+
setVariables(variables);
|
|
108
|
+
setQuery(print(ast));
|
|
111
109
|
}
|
|
112
110
|
}}
|
|
113
111
|
>
|
|
114
|
-
<span className=
|
|
112
|
+
<span className='truncate'>
|
|
115
113
|
{key}{' '}
|
|
116
114
|
{relativePath && (
|
|
117
|
-
<span className=
|
|
115
|
+
<span className='pl-2 text-sm text-gray-300'>
|
|
118
116
|
({relativePath})
|
|
119
117
|
</span>
|
|
120
118
|
)}{' '}
|
|
121
119
|
</span>
|
|
122
120
|
</button>
|
|
123
121
|
</li>
|
|
124
|
-
)
|
|
122
|
+
);
|
|
125
123
|
})}
|
|
126
124
|
</ul>
|
|
127
125
|
</nav>
|
|
128
126
|
</div>
|
|
129
127
|
</div>
|
|
130
|
-
)
|
|
131
|
-
}
|
|
128
|
+
);
|
|
129
|
+
};
|
|
132
130
|
return (
|
|
133
131
|
<div style={{ height: '100vh' }}>
|
|
134
132
|
<GraphiQL
|
|
135
133
|
fetcher={async (params, options) => {
|
|
136
134
|
const fetcher = createGraphiQLFetcher({
|
|
137
|
-
url: __API_URL__,
|
|
135
|
+
url: cms.api.tina.contentApiUrl || __API_URL__,
|
|
138
136
|
headers: { Authorization: `Bearer ${getToken()}` },
|
|
139
|
-
})
|
|
140
|
-
return fetcher(params, options)
|
|
137
|
+
});
|
|
138
|
+
return fetcher(params, options);
|
|
141
139
|
}}
|
|
142
140
|
query={query}
|
|
143
|
-
defaultEditorToolsVisibility=
|
|
141
|
+
defaultEditorToolsVisibility='variables'
|
|
144
142
|
isHeadersEditorEnabled={false}
|
|
145
143
|
defaultTabs={[]}
|
|
146
144
|
plugins={[
|
|
@@ -153,11 +151,11 @@ const Playground = () => {
|
|
|
153
151
|
variables={variables}
|
|
154
152
|
></GraphiQL>
|
|
155
153
|
</div>
|
|
156
|
-
)
|
|
157
|
-
}
|
|
154
|
+
);
|
|
155
|
+
};
|
|
158
156
|
|
|
159
|
-
export default Playground
|
|
157
|
+
export default Playground;
|
|
160
158
|
|
|
161
159
|
function classNames(...classes: string[]) {
|
|
162
|
-
return classes.filter(Boolean).join(' ')
|
|
160
|
+
return classes.filter(Boolean).join(' ');
|
|
163
161
|
}
|
package/src/dummy-client.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const queries = false
|
|
1
|
+
export const queries = false;
|