create-nextjs-cms 0.7.0 → 0.7.2

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/utils.js +16 -16
  4. package/dist/lib/section-creators.js +166 -166
  5. package/package.json +3 -3
  6. package/templates/default/.eslintrc.json +5 -5
  7. package/templates/default/.prettierignore +7 -7
  8. package/templates/default/.prettierrc.json +27 -27
  9. package/templates/default/CHANGELOG.md +140 -140
  10. package/templates/default/_gitignore +57 -57
  11. package/templates/default/app/(auth)/auth/login/LoginPage.tsx +192 -192
  12. package/templates/default/app/(auth)/auth/login/page.tsx +11 -11
  13. package/templates/default/app/(auth)/auth-locale-provider.tsx +34 -34
  14. package/templates/default/app/(auth)/layout.tsx +81 -81
  15. package/templates/default/app/(rootLayout)/(plugins)/[...slug]/page.tsx +40 -40
  16. package/templates/default/app/(rootLayout)/(plugins)/[...slug]/plugin-server-registry.ts +22 -22
  17. package/templates/default/app/(rootLayout)/admins/page.tsx +10 -10
  18. package/templates/default/app/(rootLayout)/browse/[section]/[page]/page.tsx +22 -22
  19. package/templates/default/app/(rootLayout)/categorized/[section]/page.tsx +15 -15
  20. package/templates/default/app/(rootLayout)/dashboard/page.tsx +63 -63
  21. package/templates/default/app/(rootLayout)/dashboard-new/page.tsx +7 -7
  22. package/templates/default/app/(rootLayout)/edit/[section]/[itemId]/page.tsx +17 -17
  23. package/templates/default/app/(rootLayout)/layout.tsx +81 -81
  24. package/templates/default/app/(rootLayout)/loading.tsx +10 -10
  25. package/templates/default/app/(rootLayout)/log/page.tsx +7 -7
  26. package/templates/default/app/(rootLayout)/new/[section]/page.tsx +15 -15
  27. package/templates/default/app/(rootLayout)/section/[section]/page.tsx +16 -16
  28. package/templates/default/app/(rootLayout)/settings/page.tsx +13 -13
  29. package/templates/default/app/_trpc/client.ts +3 -3
  30. package/templates/default/app/api/auth/csrf/route.ts +25 -25
  31. package/templates/default/app/api/auth/refresh/route.ts +10 -10
  32. package/templates/default/app/api/auth/session/route.ts +20 -20
  33. package/templates/default/app/api/editor/photo/route.ts +49 -49
  34. package/templates/default/app/api/photo/route.ts +27 -27
  35. package/templates/default/app/api/submit/section/item/[slug]/route.ts +66 -66
  36. package/templates/default/app/api/submit/section/item/route.ts +56 -56
  37. package/templates/default/app/api/submit/section/simple/route.ts +57 -57
  38. package/templates/default/app/api/trpc/[trpc]/route.ts +33 -33
  39. package/templates/default/app/api/video/route.ts +174 -174
  40. package/templates/default/app/globals.css +219 -219
  41. package/templates/default/app/providers.tsx +152 -152
  42. package/templates/default/cms.config.ts +49 -52
  43. package/templates/default/components/AdminCard.tsx +166 -166
  44. package/templates/default/components/AdminEditPage.tsx +124 -124
  45. package/templates/default/components/AdminPrivilegeCard.tsx +185 -185
  46. package/templates/default/components/AdminsPage.tsx +43 -43
  47. package/templates/default/components/AnalyticsPage.tsx +128 -128
  48. package/templates/default/components/BarChartBox.tsx +42 -42
  49. package/templates/default/components/BrowsePage.tsx +106 -106
  50. package/templates/default/components/CategorizedSectionPage.tsx +31 -31
  51. package/templates/default/components/CategoryDeleteConfirmPage.tsx +130 -130
  52. package/templates/default/components/CategorySectionSelectInput.tsx +140 -140
  53. package/templates/default/components/ConditionalFields.tsx +49 -49
  54. package/templates/default/components/ContainerBox.tsx +24 -24
  55. package/templates/default/components/DashboardNewPage.tsx +253 -253
  56. package/templates/default/components/DashboardPage.tsx +188 -188
  57. package/templates/default/components/DashboardPageAlt.tsx +45 -45
  58. package/templates/default/components/DefaultNavItems.tsx +3 -3
  59. package/templates/default/components/Dropzone.tsx +154 -154
  60. package/templates/default/components/EmailCard.tsx +138 -138
  61. package/templates/default/components/EmailPasswordForm.tsx +85 -85
  62. package/templates/default/components/EmailQuotaForm.tsx +73 -73
  63. package/templates/default/components/EmailsPage.tsx +49 -49
  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 +214 -214
  68. package/templates/default/components/Layout.tsx +84 -84
  69. package/templates/default/components/LoadingSpinners.tsx +67 -67
  70. package/templates/default/components/LogPage.tsx +107 -107
  71. package/templates/default/components/Modal.tsx +166 -166
  72. package/templates/default/components/Navbar.tsx +258 -258
  73. package/templates/default/components/NewAdminForm.tsx +173 -173
  74. package/templates/default/components/NewEmailForm.tsx +132 -132
  75. package/templates/default/components/NewPage.tsx +205 -205
  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 +78 -78
  81. package/templates/default/components/ProtectedImage.tsx +143 -143
  82. package/templates/default/components/ProtectedVideo.tsx +76 -76
  83. package/templates/default/components/SectionItemCard.tsx +144 -144
  84. package/templates/default/components/SectionItemStatusBadge.tsx +17 -17
  85. package/templates/default/components/SectionPage.tsx +125 -125
  86. package/templates/default/components/SelectBox.tsx +98 -98
  87. package/templates/default/components/SelectInputButtons.tsx +125 -125
  88. package/templates/default/components/SettingsPage.tsx +232 -232
  89. package/templates/default/components/Sidebar.tsx +201 -201
  90. package/templates/default/components/SidebarDropdownItem.tsx +80 -80
  91. package/templates/default/components/SidebarItem.tsx +20 -20
  92. package/templates/default/components/ThemeProvider.tsx +8 -8
  93. package/templates/default/components/TooltipComponent.tsx +27 -27
  94. package/templates/default/components/VariantCard.tsx +124 -124
  95. package/templates/default/components/VariantEditPage.tsx +230 -230
  96. package/templates/default/components/analytics/BounceRate.tsx +70 -70
  97. package/templates/default/components/analytics/LivePageViews.tsx +55 -55
  98. package/templates/default/components/analytics/LiveUsersCount.tsx +33 -33
  99. package/templates/default/components/analytics/MonthlyPageViews.tsx +42 -42
  100. package/templates/default/components/analytics/TopCountries.tsx +52 -52
  101. package/templates/default/components/analytics/TopDevices.tsx +46 -46
  102. package/templates/default/components/analytics/TopMediums.tsx +58 -58
  103. package/templates/default/components/analytics/TopSources.tsx +45 -45
  104. package/templates/default/components/analytics/TotalPageViews.tsx +41 -41
  105. package/templates/default/components/analytics/TotalSessions.tsx +41 -41
  106. package/templates/default/components/analytics/TotalUniqueUsers.tsx +41 -41
  107. package/templates/default/components/custom/RightHomeRoomVariantCard.tsx +138 -138
  108. package/templates/default/components/dndKit/Draggable.tsx +21 -21
  109. package/templates/default/components/dndKit/Droppable.tsx +20 -20
  110. package/templates/default/components/dndKit/SortableItem.tsx +18 -18
  111. package/templates/default/components/form/DateRangeFormInput.tsx +57 -57
  112. package/templates/default/components/form/Form.tsx +317 -317
  113. package/templates/default/components/form/FormInputElement.tsx +70 -70
  114. package/templates/default/components/form/FormInputs.tsx +112 -112
  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 +33 -33
  118. package/templates/default/components/form/inputs/ColorFormInput.tsx +44 -44
  119. package/templates/default/components/form/inputs/DateFormInput.tsx +156 -156
  120. package/templates/default/components/form/inputs/DocumentFormInput.tsx +222 -222
  121. package/templates/default/components/form/inputs/MapFormInput.tsx +140 -140
  122. package/templates/default/components/form/inputs/MultipleSelectFormInput.tsx +83 -83
  123. package/templates/default/components/form/inputs/NumberFormInput.tsx +42 -42
  124. package/templates/default/components/form/inputs/PasswordFormInput.tsx +47 -47
  125. package/templates/default/components/form/inputs/PhotoFormInput.tsx +219 -219
  126. package/templates/default/components/form/inputs/RichTextFormInput.tsx +135 -135
  127. package/templates/default/components/form/inputs/SelectFormInput.tsx +175 -175
  128. package/templates/default/components/form/inputs/SlugFormInput.tsx +129 -129
  129. package/templates/default/components/form/inputs/TagsFormInput.tsx +154 -154
  130. package/templates/default/components/form/inputs/TextFormInput.tsx +48 -48
  131. package/templates/default/components/form/inputs/TextareaFormInput.tsx +47 -47
  132. package/templates/default/components/form/inputs/VideoFormInput.tsx +118 -118
  133. package/templates/default/components/locale-dropdown.tsx +74 -74
  134. package/templates/default/components/locale-picker.tsx +85 -85
  135. package/templates/default/components/login-locale-dropdown.tsx +46 -46
  136. package/templates/default/components/multi-select.tsx +1144 -1144
  137. package/templates/default/components/pagination/Pagination.tsx +36 -36
  138. package/templates/default/components/pagination/PaginationButtons.tsx +147 -147
  139. package/templates/default/components/theme-toggle.tsx +37 -37
  140. package/templates/default/components/ui/accordion.tsx +53 -53
  141. package/templates/default/components/ui/alert-dialog.tsx +157 -157
  142. package/templates/default/components/ui/alert.tsx +46 -46
  143. package/templates/default/components/ui/badge.tsx +38 -38
  144. package/templates/default/components/ui/button.tsx +62 -62
  145. package/templates/default/components/ui/calendar.tsx +166 -166
  146. package/templates/default/components/ui/card.tsx +43 -43
  147. package/templates/default/components/ui/checkbox.tsx +29 -29
  148. package/templates/default/components/ui/command.tsx +137 -137
  149. package/templates/default/components/ui/custom-alert-dialog.tsx +113 -113
  150. package/templates/default/components/ui/custom-dialog.tsx +123 -123
  151. package/templates/default/components/ui/dialog.tsx +123 -123
  152. package/templates/default/components/ui/dropdown-menu.tsx +182 -182
  153. package/templates/default/components/ui/input-group.tsx +54 -54
  154. package/templates/default/components/ui/input.tsx +22 -22
  155. package/templates/default/components/ui/label.tsx +19 -19
  156. package/templates/default/components/ui/popover.tsx +42 -42
  157. package/templates/default/components/ui/progress.tsx +31 -31
  158. package/templates/default/components/ui/scroll-area.tsx +42 -42
  159. package/templates/default/components/ui/select.tsx +165 -165
  160. package/templates/default/components/ui/separator.tsx +28 -28
  161. package/templates/default/components/ui/sheet.tsx +103 -103
  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 +10 -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 +2 -4
  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,52 +1,49 @@
1
- import type { CMSConfig } from 'nextjs-cms/core/config'
2
- import en from 'nextjs-cms/translations/base/en'
3
- import ar from '@nextjscms/translations/ar'
4
- import process from 'process'
5
- import { resolve } from 'path'
6
-
7
- export const config: CMSConfig = {
8
- title: 'NEXTJS CMS',
9
- defaultTheme: 'dark',
10
- },
11
- debug: true,
12
- sections: {
13
- path: resolve(process.cwd(), 'sections'),
14
- strict: false,
15
- category: {
16
- allowRecursiveDelete: true,
17
- },
18
- },
19
- media: {
20
- upload: {
21
- path:
22
- process.env.NODE_ENV === 'development'
23
- ? 'D:/Work/WebstormProjects/turbo-expo-next/apps/web/public/content/'
24
- : '/home2/syriasell/public_html/assets/content',
25
- preserveExtension: true,
26
- },
27
- images: {
28
- thumbnail: {
29
- width: 400,
30
- height: 209,
31
- crop: true,
32
- quality: 80,
33
- },
34
- watermark: false,
35
- },
36
- },
37
- schemaGeneration: {
38
- drizzle: {
39
- enabled: true,
40
- outDir: './dynamic-schemas',
41
- fileName: 'schema.ts',
42
- naming: {
43
- tables: 'pascalCase',
44
- columns: 'camelCase',
45
- },
46
- },
47
- },
48
- i18n: {
49
- supportedLanguages: { ar, en },
50
- fallbackLanguage: 'en',
51
- },
52
- }
1
+ import type { CMSConfig } from 'nextjs-cms/core/config'
2
+ import process from 'process'
3
+ import { resolve } from 'path'
4
+
5
+ export const config: CMSConfig = {
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
+ thumbnail: {
28
+ width: 400,
29
+ height: 209,
30
+ crop: true,
31
+ quality: 80,
32
+ },
33
+ watermark: false,
34
+ },
35
+ },
36
+ schemaGeneration: {
37
+ drizzle: {
38
+ enabled: true,
39
+ outDir: './dynamic-schemas',
40
+ fileName: 'schema.ts',
41
+ naming: {
42
+ tables: 'pascalCase',
43
+ columns: 'camelCase',
44
+ },
45
+ },
46
+ },
47
+ fallbackLanguage: 'en',
48
+ },
49
+ }