create-nextjs-cms 0.9.6 → 0.9.8

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.
Files changed (184) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +71 -71
  3. package/dist/helpers/check-directory.d.ts +1 -0
  4. package/dist/helpers/check-directory.d.ts.map +1 -1
  5. package/dist/helpers/check-directory.js +98 -23
  6. package/dist/helpers/utils.js +16 -16
  7. package/dist/index.js +13 -8
  8. package/dist/lib/create-project.js +1 -1
  9. package/dist/lib/section-creators.js +166 -166
  10. package/package.json +1 -1
  11. package/templates/default/.eslintrc.json +5 -5
  12. package/templates/default/.prettierignore +7 -7
  13. package/templates/default/.prettierrc.json +27 -27
  14. package/templates/default/CHANGELOG.md +140 -140
  15. package/templates/default/_gitignore +57 -57
  16. package/templates/default/app/(auth)/auth/login/LoginPage.tsx +192 -192
  17. package/templates/default/app/(auth)/auth/login/page.tsx +11 -11
  18. package/templates/default/app/(auth)/auth-language-provider.tsx +34 -34
  19. package/templates/default/app/(auth)/layout.tsx +81 -81
  20. package/templates/default/app/(rootLayout)/(plugins)/[...slug]/page.tsx +40 -40
  21. package/templates/default/app/(rootLayout)/(plugins)/[...slug]/plugin-server-registry.ts +16 -16
  22. package/templates/default/app/(rootLayout)/admins/page.tsx +10 -10
  23. package/templates/default/app/(rootLayout)/browse/[section]/[page]/page.tsx +22 -22
  24. package/templates/default/app/(rootLayout)/categorized/[section]/page.tsx +15 -15
  25. package/templates/default/app/(rootLayout)/dashboard/page.tsx +63 -63
  26. package/templates/default/app/(rootLayout)/edit/[section]/[itemId]/page.tsx +20 -20
  27. package/templates/default/app/(rootLayout)/layout.tsx +81 -81
  28. package/templates/default/app/(rootLayout)/loading.tsx +10 -10
  29. package/templates/default/app/(rootLayout)/log/page.tsx +7 -7
  30. package/templates/default/app/(rootLayout)/new/[section]/page.tsx +15 -15
  31. package/templates/default/app/(rootLayout)/section/[section]/page.tsx +19 -19
  32. package/templates/default/app/(rootLayout)/settings/page.tsx +13 -13
  33. package/templates/default/app/_trpc/client.ts +3 -3
  34. package/templates/default/app/api/auth/csrf/route.ts +25 -25
  35. package/templates/default/app/api/auth/refresh/route.ts +10 -10
  36. package/templates/default/app/api/auth/route.ts +49 -49
  37. package/templates/default/app/api/auth/session/route.ts +20 -20
  38. package/templates/default/app/api/document/route.ts +165 -165
  39. package/templates/default/app/api/editor/photo/route.ts +49 -49
  40. package/templates/default/app/api/photo/route.ts +27 -27
  41. package/templates/default/app/api/submit/section/item/[slug]/route.ts +95 -95
  42. package/templates/default/app/api/submit/section/item/route.ts +56 -56
  43. package/templates/default/app/api/submit/section/simple/route.ts +86 -86
  44. package/templates/default/app/api/trpc/[trpc]/route.ts +33 -33
  45. package/templates/default/app/api/video/route.ts +174 -174
  46. package/templates/default/app/globals.css +228 -228
  47. package/templates/default/app/providers.tsx +152 -152
  48. package/templates/default/cms.config.ts +57 -58
  49. package/templates/default/components/AdminCard.tsx +166 -166
  50. package/templates/default/components/AdminEditPage.tsx +124 -124
  51. package/templates/default/components/AdminPrivilegeCard.tsx +185 -185
  52. package/templates/default/components/AdminsPage.tsx +43 -43
  53. package/templates/default/components/AnalyticsPage.tsx +144 -144
  54. package/templates/default/components/BarChartBox.tsx +42 -42
  55. package/templates/default/components/BrowsePage.tsx +106 -106
  56. package/templates/default/components/CategorizedSectionPage.tsx +31 -31
  57. package/templates/default/components/CategoryDeleteConfirmPage.tsx +130 -130
  58. package/templates/default/components/CategorySectionSelectInput.tsx +140 -140
  59. package/templates/default/components/ConditionalFields.tsx +49 -49
  60. package/templates/default/components/ContainerBox.tsx +24 -24
  61. package/templates/default/components/DashboardPageAlt.tsx +45 -45
  62. package/templates/default/components/DefaultNavItems.tsx +3 -3
  63. package/templates/default/components/Dropzone.tsx +154 -154
  64. package/templates/default/components/ErrorComponent.tsx +16 -16
  65. package/templates/default/components/GalleryPhoto.tsx +93 -93
  66. package/templates/default/components/InfoCard.tsx +93 -93
  67. package/templates/default/components/ItemEditPage.tsx +294 -294
  68. package/templates/default/components/Layout.tsx +84 -84
  69. package/templates/default/components/LoadingSpinners.tsx +67 -67
  70. package/templates/default/components/LocaleSwitcher.tsx +89 -89
  71. package/templates/default/components/LogPage.tsx +107 -107
  72. package/templates/default/components/Modal.tsx +166 -166
  73. package/templates/default/components/Navbar.tsx +258 -258
  74. package/templates/default/components/NewAdminForm.tsx +173 -173
  75. package/templates/default/components/NewPage.tsx +206 -206
  76. package/templates/default/components/NewVariantComponent.tsx +229 -229
  77. package/templates/default/components/PhotoGallery.tsx +35 -35
  78. package/templates/default/components/PieChartBox.tsx +101 -101
  79. package/templates/default/components/ProgressBar.tsx +48 -48
  80. package/templates/default/components/ProtectedDocument.tsx +44 -44
  81. package/templates/default/components/ProtectedImage.tsx +143 -143
  82. package/templates/default/components/ProtectedVideo.tsx +76 -76
  83. package/templates/default/components/SectionIcon.tsx +8 -8
  84. package/templates/default/components/SectionItemCard.tsx +144 -144
  85. package/templates/default/components/SectionItemStatusBadge.tsx +17 -17
  86. package/templates/default/components/SectionPage.tsx +205 -205
  87. package/templates/default/components/SelectBox.tsx +98 -98
  88. package/templates/default/components/SelectInputButtons.tsx +125 -125
  89. package/templates/default/components/SettingsPage.tsx +232 -232
  90. package/templates/default/components/Sidebar.tsx +204 -204
  91. package/templates/default/components/SidebarDropdownItem.tsx +83 -83
  92. package/templates/default/components/SidebarItem.tsx +24 -24
  93. package/templates/default/components/ThemeProvider.tsx +8 -8
  94. package/templates/default/components/TooltipComponent.tsx +27 -27
  95. package/templates/default/components/VariantCard.tsx +124 -124
  96. package/templates/default/components/VariantEditPage.tsx +230 -230
  97. package/templates/default/components/analytics/BounceRate.tsx +70 -70
  98. package/templates/default/components/analytics/LivePageViews.tsx +55 -55
  99. package/templates/default/components/analytics/LiveUsersCount.tsx +33 -33
  100. package/templates/default/components/analytics/MonthlyPageViews.tsx +42 -42
  101. package/templates/default/components/analytics/TopCountries.tsx +52 -52
  102. package/templates/default/components/analytics/TopDevices.tsx +46 -46
  103. package/templates/default/components/analytics/TopMediums.tsx +58 -58
  104. package/templates/default/components/analytics/TopSources.tsx +45 -45
  105. package/templates/default/components/analytics/TotalPageViews.tsx +41 -41
  106. package/templates/default/components/analytics/TotalSessions.tsx +41 -41
  107. package/templates/default/components/analytics/TotalUniqueUsers.tsx +41 -41
  108. package/templates/default/components/custom/RightHomeRoomVariantCard.tsx +138 -138
  109. package/templates/default/components/dndKit/Draggable.tsx +21 -21
  110. package/templates/default/components/dndKit/Droppable.tsx +20 -20
  111. package/templates/default/components/dndKit/SortableItem.tsx +18 -18
  112. package/templates/default/components/form/Form.tsx +370 -370
  113. package/templates/default/components/form/FormInputElement.tsx +70 -70
  114. package/templates/default/components/form/FormInputs.tsx +136 -136
  115. package/templates/default/components/form/helpers/_section-hot-reload.js +1 -1
  116. package/templates/default/components/form/helpers/util.ts +17 -17
  117. package/templates/default/components/form/inputs/CheckboxFormInput.tsx +46 -46
  118. package/templates/default/components/form/inputs/ColorFormInput.tsx +44 -44
  119. package/templates/default/components/form/inputs/DateFormInput.tsx +167 -110
  120. package/templates/default/components/form/inputs/DateRangeFormInput.tsx +46 -6
  121. package/templates/default/components/form/inputs/DocumentFormInput.tsx +222 -222
  122. package/templates/default/components/form/inputs/MapFormInput.tsx +140 -140
  123. package/templates/default/components/form/inputs/MultipleSelectFormInput.tsx +85 -85
  124. package/templates/default/components/form/inputs/NumberFormInput.tsx +43 -43
  125. package/templates/default/components/form/inputs/PasswordFormInput.tsx +47 -47
  126. package/templates/default/components/form/inputs/PhotoFormInput.tsx +275 -275
  127. package/templates/default/components/form/inputs/RichTextFormInput.tsx +138 -138
  128. package/templates/default/components/form/inputs/SelectFormInput.tsx +175 -175
  129. package/templates/default/components/form/inputs/SlugFormInput.tsx +131 -131
  130. package/templates/default/components/form/inputs/TagsFormInput.tsx +265 -265
  131. package/templates/default/components/form/inputs/TextFormInput.tsx +51 -51
  132. package/templates/default/components/form/inputs/TextareaFormInput.tsx +50 -50
  133. package/templates/default/components/form/inputs/VideoFormInput.tsx +118 -118
  134. package/templates/default/components/multi-select.tsx +1146 -1146
  135. package/templates/default/components/pagination/Pagination.tsx +36 -36
  136. package/templates/default/components/pagination/PaginationButtons.tsx +147 -147
  137. package/templates/default/components/theme-toggle.tsx +39 -39
  138. package/templates/default/components/ui/accordion.tsx +53 -53
  139. package/templates/default/components/ui/alert-dialog.tsx +157 -157
  140. package/templates/default/components/ui/alert.tsx +47 -47
  141. package/templates/default/components/ui/badge.tsx +38 -38
  142. package/templates/default/components/ui/button.tsx +62 -62
  143. package/templates/default/components/ui/calendar.tsx +166 -166
  144. package/templates/default/components/ui/card.tsx +43 -43
  145. package/templates/default/components/ui/checkbox.tsx +29 -29
  146. package/templates/default/components/ui/command.tsx +137 -137
  147. package/templates/default/components/ui/custom-alert-dialog.tsx +113 -113
  148. package/templates/default/components/ui/custom-dialog.tsx +123 -123
  149. package/templates/default/components/ui/dialog.tsx +123 -123
  150. package/templates/default/components/ui/direction.tsx +22 -22
  151. package/templates/default/components/ui/dropdown-menu.tsx +182 -182
  152. package/templates/default/components/ui/input-group.tsx +54 -54
  153. package/templates/default/components/ui/input.tsx +22 -22
  154. package/templates/default/components/ui/label.tsx +19 -19
  155. package/templates/default/components/ui/popover.tsx +42 -42
  156. package/templates/default/components/ui/progress.tsx +31 -31
  157. package/templates/default/components/ui/scroll-area.tsx +42 -42
  158. package/templates/default/components/ui/select.tsx +165 -165
  159. package/templates/default/components/ui/separator.tsx +28 -28
  160. package/templates/default/components/ui/sheet.tsx +103 -103
  161. package/templates/default/components/ui/spinner.tsx +16 -16
  162. package/templates/default/components/ui/switch.tsx +29 -29
  163. package/templates/default/components/ui/table.tsx +83 -83
  164. package/templates/default/components/ui/tabs.tsx +55 -55
  165. package/templates/default/components/ui/toast.tsx +113 -113
  166. package/templates/default/components/ui/toaster.tsx +35 -35
  167. package/templates/default/components/ui/tooltip.tsx +30 -30
  168. package/templates/default/components/ui/use-toast.ts +188 -188
  169. package/templates/default/components.json +21 -21
  170. package/templates/default/context/ModalProvider.tsx +53 -53
  171. package/templates/default/drizzle.config.ts +4 -4
  172. package/templates/default/dynamic-schemas/schema.ts +475 -0
  173. package/templates/default/env/env.js +130 -130
  174. package/templates/default/envConfig.ts +4 -4
  175. package/templates/default/hooks/useModal.ts +8 -8
  176. package/templates/default/lib/apiHelpers.ts +92 -92
  177. package/templates/default/lib/postinstall.js +14 -14
  178. package/templates/default/lib/utils.ts +6 -6
  179. package/templates/default/next-env.d.ts +6 -6
  180. package/templates/default/next.config.ts +23 -23
  181. package/templates/default/package.json +1 -1
  182. package/templates/default/postcss.config.mjs +6 -6
  183. package/templates/default/proxy.ts +32 -32
  184. package/templates/default/tsconfig.json +48 -48
@@ -1,152 +1,152 @@
1
- 'use client'
2
-
3
- import { QueryClient, QueryClientProvider, defaultShouldDehydrateQuery } from '@tanstack/react-query'
4
- import { ReactQueryDevtools } from '@tanstack/react-query-devtools'
5
- import { ModalProvider } from '@/context/ModalProvider'
6
- import { trpc } from '@/app/_trpc/client'
7
- import { httpBatchLink, loggerLink } from '@trpc/client'
8
- import SuperJSON from 'superjson'
9
- import { useState } from 'react'
10
- import { getCsrfToken, SessionProvider, refreshTokenLink } from 'nextjs-cms/auth/react'
11
- import { Session } from 'nextjs-cms/auth'
12
-
13
- function MakeTrpcClient() {
14
- const [trpcClient] = useState(() =>
15
- trpc.createClient({
16
- links: [
17
- /**
18
- * The refresh token link will automatically refresh the access token if it's expired.
19
- * It fetches the new access token using the refresh token by calling the `/api/auth/refresh` endpoint.
20
- */
21
- refreshTokenLink(),
22
- /**
23
- * The logger link will log all the operations that are being sent to the server.
24
- * @see https://trpc.io/docs/client/links/loggerLink
25
- */
26
- loggerLink({
27
- enabled: (op) =>
28
- process.env.NODE_ENV === 'development' ||
29
- (op.direction === 'down' && op.result instanceof Error),
30
- }),
31
-
32
- /**
33
- * The HTTP batch link is used to send multiple operations in a single HTTP request,
34
- * but doesn't wait for all the responses of the batch to be ready,
35
- * and streams the responses as soon as any data is available.
36
- * @see https://trpc.io/docs/client/links/httpBatchStreamLink
37
- *
38
- * TODO: The stream link is somehow causing empty responses before the actual response!
39
- */
40
- /*unstable_httpBatchStreamLink({
41
- transformer: superjson,
42
- url: '/api/trpc',
43
- // You can pass any HTTP headers you wish here
44
- async headers() {
45
- const headers = new Headers()
46
- headers.set('x-trpc-source', 'nextjs-react')
47
- headers.set('Authorization', `Bearer ${authStore.state.accessToken}`)
48
- return headers
49
- },
50
- }),*/
51
-
52
- /**
53
- * The HTTP batch link is used to send multiple operations in a single HTTP request.
54
- * @see https://trpc.io/docs/client/links/httpBatchLink
55
- */
56
- httpBatchLink({
57
- transformer: SuperJSON,
58
- url: '/api/trpc',
59
- // You can pass any HTTP headers you wish here
60
- async headers(op) {
61
- const headers = new Headers()
62
- /**
63
- * Check if there are any mutations in the operations list
64
- */
65
- if (op.opList.some((o) => o.type === 'mutation')) {
66
- /**
67
- * Get the CSRF token, and set it in the headers
68
- */
69
- const csrfToken = await getCsrfToken()
70
- headers.set('x-csrf-token', csrfToken)
71
- }
72
-
73
- headers.set('x-trpc-source', 'nextjs-react')
74
-
75
- return headers
76
- },
77
- }),
78
- ],
79
- }),
80
- )
81
-
82
- return trpcClient
83
- }
84
-
85
- function createQueryClient() {
86
- return new QueryClient({
87
- defaultOptions: {
88
- queries: {
89
- // With SSR, we usually want to set some default staleTime
90
- // above 0 to avoid refetching immediately on the client
91
- /**
92
- * It's better to leave the staleTime to 0 to always fetch the latest data in a cms
93
- */
94
- // staleTime: 3 * 1000,
95
- /**
96
- * We want to refetch on window focus in development only
97
- */
98
- refetchOnWindowFocus: process.env.NODE_ENV === 'development' ? true : false,
99
- retry: 1, // default: 3
100
- },
101
- dehydrate: {
102
- serializeData: SuperJSON.serialize,
103
- shouldDehydrateQuery: (query) => defaultShouldDehydrateQuery(query) || query.state.status === 'pending',
104
- },
105
- hydrate: {
106
- deserializeData: SuperJSON.deserialize,
107
- },
108
- },
109
- })
110
- }
111
-
112
- let browserQueryClient: QueryClient | undefined = undefined
113
-
114
- function getQueryClient() {
115
- if (typeof window === 'undefined') {
116
- // Server: always make a new query client
117
- return createQueryClient()
118
- } else {
119
- // Browser: make a new query client if we don't already have one
120
- // This is very important so we don't re-make a new client if React
121
- // suspends during the initial render. This may not be needed if we
122
- // have a suspense boundary BELOW the creation of the query client
123
- if (!browserQueryClient) browserQueryClient = createQueryClient()
124
- return browserQueryClient
125
- }
126
- }
127
-
128
- export default function Providers({ children, session }: { children: React.ReactNode; session: Session | undefined }) {
129
- // NOTE: Avoid useState when initializing the query client if you don't
130
- // have a suspense boundary between this and the code that may
131
- // suspend because React will throw away the client on the initial
132
- // render if it suspends and there is no boundary
133
- const queryClient = getQueryClient()
134
- // const trpcClient = getTrpcClient()
135
- const trpcClient = MakeTrpcClient()
136
-
137
- return (
138
- <QueryClientProvider client={queryClient}>
139
- <trpc.Provider client={trpcClient} queryClient={queryClient}>
140
- <SessionProvider
141
- session={session}
142
- refetchOnWindowFocus={false}
143
- refetchInterval={0}
144
- refetchWhenOffline={false}
145
- >
146
- <ModalProvider>{children}</ModalProvider>
147
- </SessionProvider>
148
- <ReactQueryDevtools initialIsOpen={false} />
149
- </trpc.Provider>
150
- </QueryClientProvider>
151
- )
152
- }
1
+ 'use client'
2
+
3
+ import { QueryClient, QueryClientProvider, defaultShouldDehydrateQuery } from '@tanstack/react-query'
4
+ import { ReactQueryDevtools } from '@tanstack/react-query-devtools'
5
+ import { ModalProvider } from '@/context/ModalProvider'
6
+ import { trpc } from '@/app/_trpc/client'
7
+ import { httpBatchLink, loggerLink } from '@trpc/client'
8
+ import SuperJSON from 'superjson'
9
+ import { useState } from 'react'
10
+ import { getCsrfToken, SessionProvider, refreshTokenLink } from 'nextjs-cms/auth/react'
11
+ import { Session } from 'nextjs-cms/auth'
12
+
13
+ function MakeTrpcClient() {
14
+ const [trpcClient] = useState(() =>
15
+ trpc.createClient({
16
+ links: [
17
+ /**
18
+ * The refresh token link will automatically refresh the access token if it's expired.
19
+ * It fetches the new access token using the refresh token by calling the `/api/auth/refresh` endpoint.
20
+ */
21
+ refreshTokenLink(),
22
+ /**
23
+ * The logger link will log all the operations that are being sent to the server.
24
+ * @see https://trpc.io/docs/client/links/loggerLink
25
+ */
26
+ loggerLink({
27
+ enabled: (op) =>
28
+ process.env.NODE_ENV === 'development' ||
29
+ (op.direction === 'down' && op.result instanceof Error),
30
+ }),
31
+
32
+ /**
33
+ * The HTTP batch link is used to send multiple operations in a single HTTP request,
34
+ * but doesn't wait for all the responses of the batch to be ready,
35
+ * and streams the responses as soon as any data is available.
36
+ * @see https://trpc.io/docs/client/links/httpBatchStreamLink
37
+ *
38
+ * TODO: The stream link is somehow causing empty responses before the actual response!
39
+ */
40
+ /*unstable_httpBatchStreamLink({
41
+ transformer: superjson,
42
+ url: '/api/trpc',
43
+ // You can pass any HTTP headers you wish here
44
+ async headers() {
45
+ const headers = new Headers()
46
+ headers.set('x-trpc-source', 'nextjs-react')
47
+ headers.set('Authorization', `Bearer ${authStore.state.accessToken}`)
48
+ return headers
49
+ },
50
+ }),*/
51
+
52
+ /**
53
+ * The HTTP batch link is used to send multiple operations in a single HTTP request.
54
+ * @see https://trpc.io/docs/client/links/httpBatchLink
55
+ */
56
+ httpBatchLink({
57
+ transformer: SuperJSON,
58
+ url: '/api/trpc',
59
+ // You can pass any HTTP headers you wish here
60
+ async headers(op) {
61
+ const headers = new Headers()
62
+ /**
63
+ * Check if there are any mutations in the operations list
64
+ */
65
+ if (op.opList.some((o) => o.type === 'mutation')) {
66
+ /**
67
+ * Get the CSRF token, and set it in the headers
68
+ */
69
+ const csrfToken = await getCsrfToken()
70
+ headers.set('x-csrf-token', csrfToken)
71
+ }
72
+
73
+ headers.set('x-trpc-source', 'nextjs-react')
74
+
75
+ return headers
76
+ },
77
+ }),
78
+ ],
79
+ }),
80
+ )
81
+
82
+ return trpcClient
83
+ }
84
+
85
+ function createQueryClient() {
86
+ return new QueryClient({
87
+ defaultOptions: {
88
+ queries: {
89
+ // With SSR, we usually want to set some default staleTime
90
+ // above 0 to avoid refetching immediately on the client
91
+ /**
92
+ * It's better to leave the staleTime to 0 to always fetch the latest data in a cms
93
+ */
94
+ // staleTime: 3 * 1000,
95
+ /**
96
+ * We want to refetch on window focus in development only
97
+ */
98
+ refetchOnWindowFocus: process.env.NODE_ENV === 'development' ? true : false,
99
+ retry: 1, // default: 3
100
+ },
101
+ dehydrate: {
102
+ serializeData: SuperJSON.serialize,
103
+ shouldDehydrateQuery: (query) => defaultShouldDehydrateQuery(query) || query.state.status === 'pending',
104
+ },
105
+ hydrate: {
106
+ deserializeData: SuperJSON.deserialize,
107
+ },
108
+ },
109
+ })
110
+ }
111
+
112
+ let browserQueryClient: QueryClient | undefined = undefined
113
+
114
+ function getQueryClient() {
115
+ if (typeof window === 'undefined') {
116
+ // Server: always make a new query client
117
+ return createQueryClient()
118
+ } else {
119
+ // Browser: make a new query client if we don't already have one
120
+ // This is very important so we don't re-make a new client if React
121
+ // suspends during the initial render. This may not be needed if we
122
+ // have a suspense boundary BELOW the creation of the query client
123
+ if (!browserQueryClient) browserQueryClient = createQueryClient()
124
+ return browserQueryClient
125
+ }
126
+ }
127
+
128
+ export default function Providers({ children, session }: { children: React.ReactNode; session: Session | undefined }) {
129
+ // NOTE: Avoid useState when initializing the query client if you don't
130
+ // have a suspense boundary between this and the code that may
131
+ // suspend because React will throw away the client on the initial
132
+ // render if it suspends and there is no boundary
133
+ const queryClient = getQueryClient()
134
+ // const trpcClient = getTrpcClient()
135
+ const trpcClient = MakeTrpcClient()
136
+
137
+ return (
138
+ <QueryClientProvider client={queryClient}>
139
+ <trpc.Provider client={trpcClient} queryClient={queryClient}>
140
+ <SessionProvider
141
+ session={session}
142
+ refetchOnWindowFocus={false}
143
+ refetchInterval={0}
144
+ refetchWhenOffline={false}
145
+ >
146
+ <ModalProvider>{children}</ModalProvider>
147
+ </SessionProvider>
148
+ <ReactQueryDevtools initialIsOpen={false} />
149
+ </trpc.Provider>
150
+ </QueryClientProvider>
151
+ )
152
+ }
@@ -1,58 +1,57 @@
1
- import { defineConfig } from 'nextjs-cms/core/config'
2
- import process from 'process'
3
- import { resolve } from 'path'
4
-
5
- export default defineConfig({
6
- ui: {
7
- title: 'NEXTJS CMS',
8
- defaultTheme: 'dark',
9
- },
10
- debug: true,
11
- sections: {
12
- path: resolve(process.cwd(), 'sections'),
13
- strict: false,
14
- category: {
15
- allowRecursiveDelete: true,
16
- },
17
- },
18
- media: {
19
- upload: {
20
- path:
21
- process.env.NODE_ENV === 'development'
22
- ? 'D:/Work/WebstormProjects/turbo-expo-next/apps/web/public/content/'
23
- : '/home2/syriasell/public_html/assets/content',
24
- preserveExtension: true,
25
- },
26
- images: {
27
- image: {
28
- size: {
29
- width: 1200,
30
- height: 628,
31
- fit: 'contain',
32
- strict: false,
33
- },
34
- quality: 100,
35
- },
36
- thumbnail: {
37
- size: {
38
- width: 400,
39
- height: 209,
40
- fit: 'contain',
41
- },
42
- quality: 100,
43
- },
44
- watermark: false,
45
- },
46
- },
47
- schemaGeneration: {
48
- drizzle: {
49
- enabled: true,
50
- outDir: './dynamic-schemas',
51
- fileName: 'schema.ts',
52
- naming: {
53
- tables: 'pascalCase',
54
- columns: 'camelCase',
55
- },
56
- },
57
- },
58
- })
1
+ import { defineConfig } from 'nextjs-cms/core/config'
2
+ import { resolve } from 'path'
3
+
4
+ export default defineConfig({
5
+ ui: {
6
+ title: 'NEXTJS CMS',
7
+ defaultTheme: 'dark',
8
+ },
9
+ debug: true,
10
+ sections: {
11
+ path: resolve(process.cwd(), 'sections'),
12
+ strict: false,
13
+ category: {
14
+ allowRecursiveDelete: true,
15
+ },
16
+ },
17
+ media: {
18
+ upload: {
19
+ path:
20
+ process.env.NODE_ENV === 'development'
21
+ ? 'D:/Work/WebstormProjects/turbo-expo-next/apps/web/public/content/'
22
+ : '/home2/syriasell/public_html/assets/content',
23
+ preserveExtension: true,
24
+ },
25
+ images: {
26
+ image: {
27
+ size: {
28
+ width: 1200,
29
+ height: 628,
30
+ fit: 'contain',
31
+ strict: false,
32
+ },
33
+ quality: 100,
34
+ },
35
+ thumbnail: {
36
+ size: {
37
+ width: 400,
38
+ height: 209,
39
+ fit: 'contain',
40
+ },
41
+ quality: 100,
42
+ },
43
+ watermark: false,
44
+ },
45
+ },
46
+ schemaGeneration: {
47
+ drizzle: {
48
+ enabled: true,
49
+ outDir: './dynamic-schemas',
50
+ fileName: 'schema.ts',
51
+ naming: {
52
+ tables: 'pascalCase',
53
+ columns: 'camelCase',
54
+ },
55
+ },
56
+ },
57
+ })