@devvistatech/devvista-kit 0.0.10 → 0.0.12

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 (306) hide show
  1. package/CHANGELOG.md +12 -12
  2. package/LICENSE +6 -6
  3. package/README.md +15 -15
  4. package/app/about/page.tsx +298 -298
  5. package/app/adRequest/page.tsx +549 -549
  6. package/app/analytics/page.tsx +346 -346
  7. package/app/api/about/route.ts +306 -306
  8. package/app/api/adRequest/route.ts +567 -567
  9. package/app/api/analytics/[reportType]/route.ts +337 -337
  10. package/app/api/bio/route.ts +313 -313
  11. package/app/api/blog/route.ts +306 -306
  12. package/app/api/chat/route.ts +14 -14
  13. package/app/api/contact/route.ts +409 -409
  14. package/app/api/contacts/route.ts +224 -224
  15. package/app/api/files/route.ts +429 -429
  16. package/app/api/gallery-data/route.ts +735 -735
  17. package/app/api/schedule/route.ts +455 -455
  18. package/app/api/sync-user/route.ts +131 -131
  19. package/app/api/trial-request/route.ts +297 -297
  20. package/app/blog/[id]/page.tsx +288 -288
  21. package/app/blog/page.tsx +216 -216
  22. package/app/contact/page.tsx +284 -284
  23. package/app/faq/page.tsx +191 -191
  24. package/app/gallery/page.tsx +315 -315
  25. package/app/globals.css +58 -58
  26. package/app/layout.tsx +110 -110
  27. package/app/not-found.tsx +20 -20
  28. package/app/page.tsx +338 -338
  29. package/app/schedule/page.tsx +660 -660
  30. package/bin/init.js +219 -219
  31. package/components/addOns/functional/BioEditor.tsx +446 -446
  32. package/components/addOns/functional/CalendlyWidget.tsx +107 -107
  33. package/components/addOns/functional/ClassList.tsx +145 -145
  34. package/components/addOns/functional/ClassPopup.tsx +398 -398
  35. package/components/addOns/functional/ContactForm.tsx +284 -284
  36. package/components/addOns/functional/FileUploader.tsx +294 -294
  37. package/components/addOns/functional/ImageDescCarousel.tsx +730 -730
  38. package/components/addOns/functional/NewUserAnalytics.tsx +100 -100
  39. package/components/addOns/functional/ScheduleCarousel.tsx +171 -171
  40. package/components/addOns/functional/aboutSections/AboutSection.tsx +544 -544
  41. package/components/addOns/functional/aboutSections/constants/aboutSection.ts +65 -65
  42. package/components/addOns/functional/blogSections/BlogDashboard.tsx +184 -184
  43. package/components/addOns/functional/blogSections/BlogFormPopUp.tsx +554 -554
  44. package/components/addOns/functional/blogSections/BlogList.tsx +148 -148
  45. package/components/addOns/functional/blogSections/BlogSidebar.tsx +58 -58
  46. package/components/addOns/functional/blogSections/constants/blogDashboard.ts +28 -28
  47. package/components/addOns/functional/blogSections/constants/blogFormPopUp.ts +97 -97
  48. package/components/addOns/functional/blogSections/constants/blogList.ts +22 -22
  49. package/components/addOns/functional/blogSections/constants/blogSidebar.ts +15 -15
  50. package/components/addOns/functional/contactsDashboard/ContactsDashboard.tsx +366 -366
  51. package/components/addOns/functional/contactsDashboard/constants/contactsDashboard.ts +70 -70
  52. package/components/addOns/functional/galleries/GalleryComplex.tsx +836 -836
  53. package/components/addOns/functional/galleries/GallerySimple.tsx +509 -509
  54. package/components/addOns/functional/galleries/constants/galleryComplex.ts +106 -106
  55. package/components/addOns/functional/galleries/constants/gallerySimple.ts +76 -76
  56. package/components/addOns/functional/schedules/ScheduleGridOne.tsx +262 -262
  57. package/components/addOns/functional/schedules/ScheduleGridTwo.tsx +294 -294
  58. package/components/addOns/functional/schedules/ScheduleGridTwoBasic.tsx +288 -288
  59. package/components/addOns/functional/schedules/SchedulerForm.tsx +428 -428
  60. package/components/addOns/functional/schedules/constants/ScheduleGridTwo.ts +40 -40
  61. package/components/addOns/functional/schedules/constants/ScheduleGridTwoBasic.ts +40 -40
  62. package/components/addOns/functional/schedules/constants/SchedulerForm.ts +65 -65
  63. package/components/addOns/functional/schedules/constants/scheduleGridOne.ts +54 -54
  64. package/components/addOns/non-functional/AnnouncementBanner.tsx +46 -46
  65. package/components/addOns/non-functional/FeaturesSection.tsx +62 -62
  66. package/components/addOns/non-functional/Heros/HeroSection.tsx +142 -142
  67. package/components/addOns/non-functional/IconBubble.tsx +49 -49
  68. package/components/addOns/non-functional/SampleCarousel.tsx +204 -204
  69. package/components/addOns/non-functional/Testimonials.tsx +334 -334
  70. package/components/addOns/non-functional/ThreeSetGallery.tsx +63 -63
  71. package/components/addOns/non-functional/aboutSections/AboutSection.tsx +62 -62
  72. package/components/addOns/non-functional/aboutSections/constants/aboutSection.ts +24 -24
  73. package/components/addOns/non-functional/imageCarousels/ProductSlider.tsx +117 -117
  74. package/components/addOns/non-functional/imageCarousels/ProgramCarousel.tsx +232 -232
  75. package/components/addOns/non-functional/imageCarousels/constants/programCarousel.ts +39 -39
  76. package/components/addOns/non-functional/imageCarousels/constants/programSlider.ts +36 -36
  77. package/components/addOns/non-functional/spinner.tsx +21 -21
  78. package/components/footers/footer.tsx +453 -453
  79. package/components/navBars/navbar.tsx +310 -310
  80. package/components/other/accordion.tsx +58 -58
  81. package/components/other/admin-menu.tsx +68 -68
  82. package/components/other/alert-dialog.tsx +141 -141
  83. package/components/other/alert.tsx +59 -59
  84. package/components/other/aspect-ratio.tsx +7 -7
  85. package/components/other/avatar.tsx +50 -50
  86. package/components/other/badge.tsx +36 -36
  87. package/components/other/breadcrumb.tsx +115 -115
  88. package/components/other/button.tsx +738 -738
  89. package/components/other/calendar.tsx +66 -66
  90. package/components/other/card.tsx +86 -86
  91. package/components/other/carousel.tsx +274 -274
  92. package/components/other/chart.tsx +363 -363
  93. package/components/other/checkbox.tsx +30 -30
  94. package/components/other/collapsible.tsx +11 -11
  95. package/components/other/command.tsx +155 -155
  96. package/components/other/context-menu.tsx +200 -200
  97. package/components/other/dialog.tsx +122 -122
  98. package/components/other/drawer.tsx +118 -118
  99. package/components/other/dropdown-menu.tsx +200 -200
  100. package/components/other/form.tsx +179 -179
  101. package/components/other/hover-card.tsx +29 -29
  102. package/components/other/input-otp.tsx +71 -71
  103. package/components/other/input.tsx +25 -25
  104. package/components/other/label.tsx +26 -26
  105. package/components/other/menubar.tsx +236 -236
  106. package/components/other/mobile-icon.tsx +21 -21
  107. package/components/other/navigation-menu.tsx +128 -128
  108. package/components/other/pagination.tsx +117 -117
  109. package/components/other/popover.tsx +31 -31
  110. package/components/other/progress.tsx +28 -28
  111. package/components/other/radio-group.tsx +44 -44
  112. package/components/other/resizable.tsx +45 -45
  113. package/components/other/scroll-area.tsx +48 -48
  114. package/components/other/select.tsx +160 -160
  115. package/components/other/separator.tsx +31 -31
  116. package/components/other/sheet.tsx +140 -140
  117. package/components/other/skeleton.tsx +15 -15
  118. package/components/other/slider.tsx +28 -28
  119. package/components/other/social-icons.tsx +39 -39
  120. package/components/other/sonner.tsx +31 -31
  121. package/components/other/switch.tsx +29 -29
  122. package/components/other/table.tsx +117 -117
  123. package/components/other/tabs.tsx +55 -55
  124. package/components/other/textarea.tsx +24 -24
  125. package/components/other/toast.tsx +122 -122
  126. package/components/other/toaster.tsx +35 -35
  127. package/components/other/toggle-group.tsx +61 -61
  128. package/components/other/toggle.tsx +45 -45
  129. package/components/other/tooltip.tsx +30 -30
  130. package/components/theme-provider.tsx +8 -8
  131. package/components/types.ts +49 -49
  132. package/hooks/use-toast.ts +188 -188
  133. package/lib/auth-context.tsx +130 -130
  134. package/lib/constants/about.ts +34 -34
  135. package/lib/constants/adRequest.ts +113 -113
  136. package/lib/constants/contact.ts +40 -40
  137. package/lib/constants/faq.ts +34 -34
  138. package/lib/constants/gallery.ts +42 -42
  139. package/lib/constants/page.ts +69 -69
  140. package/lib/constants/schedule.ts +71 -71
  141. package/lib/google-analytics.tsx +97 -97
  142. package/lib/verify-user.ts +117 -117
  143. package/middleware.ts +42 -42
  144. package/netlify.toml +5 -5
  145. package/next.config.js +10 -10
  146. package/package.json +115 -115
  147. package/tailwind.config.ts +89 -89
  148. package/tsconfig.json +23 -23
  149. package/dist/.next/types/app/api/about/route.js +0 -52
  150. package/dist/.next/types/app/api/blog/route.js +0 -52
  151. package/dist/.next/types/app/api/files/route.js +0 -52
  152. package/dist/.next/types/app/api/schedule/route.js +0 -52
  153. package/dist/.next/types/app/api/sync-user/route.js +0 -52
  154. package/dist/.next/types/app/layout.js +0 -22
  155. package/dist/.next/types/app/page.js +0 -22
  156. package/dist/app/about/page.jsx +0 -258
  157. package/dist/app/adRequest/page.jsx +0 -531
  158. package/dist/app/analytics/page.jsx +0 -298
  159. package/dist/app/api/about/route.js +0 -285
  160. package/dist/app/api/adRequest/route.js +0 -440
  161. package/dist/app/api/analytics/[reportType]/route.js +0 -357
  162. package/dist/app/api/bio/route.js +0 -293
  163. package/dist/app/api/blog/route.js +0 -366
  164. package/dist/app/api/chat/route.js +0 -58
  165. package/dist/app/api/contact/route.js +0 -163
  166. package/dist/app/api/contacts/route.js +0 -234
  167. package/dist/app/api/files/route.js +0 -444
  168. package/dist/app/api/gallery-data/route.js +0 -719
  169. package/dist/app/api/schedule/route.js +0 -461
  170. package/dist/app/api/sync-user/route.js +0 -186
  171. package/dist/app/api/trial-request/route.js +0 -165
  172. package/dist/app/blog/[id]/page.jsx +0 -312
  173. package/dist/app/blog/page.jsx +0 -210
  174. package/dist/app/constants/about.js +0 -32
  175. package/dist/app/constants/adRequest.js +0 -113
  176. package/dist/app/constants/contact.js +0 -40
  177. package/dist/app/constants/faq.js +0 -36
  178. package/dist/app/constants/gallery.js +0 -42
  179. package/dist/app/constants/page.js +0 -69
  180. package/dist/app/constants/schedule.js +0 -71
  181. package/dist/app/contact/page.jsx +0 -119
  182. package/dist/app/faq/page.jsx +0 -97
  183. package/dist/app/gallery/page.jsx +0 -281
  184. package/dist/app/layout.jsx +0 -45
  185. package/dist/app/not-found.jsx +0 -14
  186. package/dist/app/page.jsx +0 -324
  187. package/dist/app/schedule/page.jsx +0 -500
  188. package/dist/components/addOns/functional/BioEditor.jsx +0 -187
  189. package/dist/components/addOns/functional/CalendlyWidget.jsx +0 -61
  190. package/dist/components/addOns/functional/ClassList.jsx +0 -158
  191. package/dist/components/addOns/functional/ClassPopup.jsx +0 -300
  192. package/dist/components/addOns/functional/ContactForm.jsx +0 -219
  193. package/dist/components/addOns/functional/FileUploader.jsx +0 -222
  194. package/dist/components/addOns/functional/ImageDescCarousel.jsx +0 -491
  195. package/dist/components/addOns/functional/NewUserAnalytics.jsx +0 -71
  196. package/dist/components/addOns/functional/ScheduleCarousel.jsx +0 -68
  197. package/dist/components/addOns/functional/aboutSections/AboutSection.jsx +0 -372
  198. package/dist/components/addOns/functional/aboutSections/constants/aboutSection.js +0 -65
  199. package/dist/components/addOns/functional/blogSections/BlogDashboard.jsx +0 -111
  200. package/dist/components/addOns/functional/blogSections/BlogFormPopUp.jsx +0 -465
  201. package/dist/components/addOns/functional/blogSections/BlogList.jsx +0 -170
  202. package/dist/components/addOns/functional/blogSections/BlogSidebar.jsx +0 -35
  203. package/dist/components/addOns/functional/blogSections/constants/blogDashboard.js +0 -28
  204. package/dist/components/addOns/functional/blogSections/constants/blogFormPopUp.js +0 -97
  205. package/dist/components/addOns/functional/blogSections/constants/blogList.js +0 -22
  206. package/dist/components/addOns/functional/blogSections/constants/blogSidebar.js +0 -15
  207. package/dist/components/addOns/functional/contactsDashboard/ContactsDashboard.jsx +0 -355
  208. package/dist/components/addOns/functional/contactsDashboard/constants/contactsDashboard.js +0 -70
  209. package/dist/components/addOns/functional/galleries/GalleryComplex.jsx +0 -605
  210. package/dist/components/addOns/functional/galleries/GallerySimple.jsx +0 -363
  211. package/dist/components/addOns/functional/galleries/constants/galleryComplex.js +0 -106
  212. package/dist/components/addOns/functional/galleries/constants/gallerySimple.js +0 -76
  213. package/dist/components/addOns/functional/schedules/ScheduleGridOne.jsx +0 -167
  214. package/dist/components/addOns/functional/schedules/ScheduleGridTwo.jsx +0 -100
  215. package/dist/components/addOns/functional/schedules/ScheduleGridTwoBasic.jsx +0 -97
  216. package/dist/components/addOns/functional/schedules/SchedulerForm.jsx +0 -188
  217. package/dist/components/addOns/functional/schedules/constants/ScheduleGridTwo.js +0 -40
  218. package/dist/components/addOns/functional/schedules/constants/ScheduleGridTwoBasic.js +0 -40
  219. package/dist/components/addOns/functional/schedules/constants/SchedulerForm.js +0 -65
  220. package/dist/components/addOns/functional/schedules/constants/scheduleGridOne.js +0 -54
  221. package/dist/components/addOns/non-functional/AnnouncementBanner.jsx +0 -24
  222. package/dist/components/addOns/non-functional/FeaturesSection.jsx +0 -38
  223. package/dist/components/addOns/non-functional/HeroSection.jsx +0 -71
  224. package/dist/components/addOns/non-functional/Heros/HeroSection.jsx +0 -71
  225. package/dist/components/addOns/non-functional/IconBubble.jsx +0 -36
  226. package/dist/components/addOns/non-functional/SampleCarousel.jsx +0 -114
  227. package/dist/components/addOns/non-functional/Testimonials.jsx +0 -177
  228. package/dist/components/addOns/non-functional/ThreeSetGallery.jsx +0 -40
  229. package/dist/components/addOns/non-functional/aboutSections/AboutSection.jsx +0 -35
  230. package/dist/components/addOns/non-functional/aboutSections/constants/aboutSection.js +0 -24
  231. package/dist/components/addOns/non-functional/imageCarousels/ProductSlider.jsx +0 -80
  232. package/dist/components/addOns/non-functional/imageCarousels/ProgramCarousel.jsx +0 -155
  233. package/dist/components/addOns/non-functional/imageCarousels/constants/programCarousel.js +0 -39
  234. package/dist/components/addOns/non-functional/imageCarousels/constants/programSlider.js +0 -36
  235. package/dist/components/addOns/non-functional/spinner.jsx +0 -13
  236. package/dist/components/footers/footer.jsx +0 -217
  237. package/dist/components/navBars/navbar.jsx +0 -159
  238. package/dist/components/other/accordion.jsx +0 -40
  239. package/dist/components/other/admin-menu.jsx +0 -34
  240. package/dist/components/other/alert-dialog.jsx +0 -64
  241. package/dist/components/other/alert.jsx +0 -41
  242. package/dist/components/other/aspect-ratio.jsx +0 -4
  243. package/dist/components/other/avatar.jsx +0 -31
  244. package/dist/components/other/badge.jsx +0 -32
  245. package/dist/components/other/breadcrumb.jsx +0 -57
  246. package/dist/components/other/button.jsx +0 -322
  247. package/dist/components/other/calendar.jsx +0 -43
  248. package/dist/components/other/card.jsx +0 -44
  249. package/dist/components/other/carousel.jsx +0 -140
  250. package/dist/components/other/chart.jsx +0 -182
  251. package/dist/components/other/checkbox.jsx +0 -26
  252. package/dist/components/other/collapsible.jsx +0 -6
  253. package/dist/components/other/command.jsx +0 -68
  254. package/dist/components/other/context-menu.jsx +0 -88
  255. package/dist/components/other/dialog.jsx +0 -60
  256. package/dist/components/other/drawer.jsx +0 -60
  257. package/dist/components/other/dropdown-menu.jsx +0 -90
  258. package/dist/components/other/form.jsx +0 -89
  259. package/dist/components/other/hover-card.jsx +0 -23
  260. package/dist/components/other/input-otp.jsx +0 -46
  261. package/dist/components/other/input.jsx +0 -19
  262. package/dist/components/other/label.jsx +0 -23
  263. package/dist/components/other/login-popup.jsx +0 -1
  264. package/dist/components/other/menubar.jsx +0 -96
  265. package/dist/components/other/mobile-icon.jsx +0 -11
  266. package/dist/components/other/navigation-menu.jsx +0 -62
  267. package/dist/components/other/pagination.jsx +0 -63
  268. package/dist/components/other/popover.jsx +0 -25
  269. package/dist/components/other/progress.jsx +0 -23
  270. package/dist/components/other/radio-group.jsx +0 -31
  271. package/dist/components/other/resizable.jsx +0 -29
  272. package/dist/components/other/scroll-area.jsx +0 -36
  273. package/dist/components/other/select.jsx +0 -83
  274. package/dist/components/other/separator.jsx +0 -21
  275. package/dist/components/other/sheet.jsx +0 -74
  276. package/dist/components/other/signup-popup.jsx +0 -1
  277. package/dist/components/other/skeleton.jsx +0 -17
  278. package/dist/components/other/slider.jsx +0 -26
  279. package/dist/components/other/social-icons.jsx +0 -15
  280. package/dist/components/other/sonner.jsx +0 -27
  281. package/dist/components/other/switch.jsx +0 -23
  282. package/dist/components/other/table.jsx +0 -56
  283. package/dist/components/other/tabs.jsx +0 -32
  284. package/dist/components/other/textarea.jsx +0 -19
  285. package/dist/components/other/toast.jsx +0 -58
  286. package/dist/components/other/toaster.jsx +0 -31
  287. package/dist/components/other/toggle-group.jsx +0 -41
  288. package/dist/components/other/toggle.jsx +0 -39
  289. package/dist/components/other/tooltip.jsx +0 -24
  290. package/dist/components/theme-provider.jsx +0 -18
  291. package/dist/components/types.js +0 -1
  292. package/dist/hooks/use-toast.js +0 -135
  293. package/dist/lib/auth-context.jsx +0 -144
  294. package/dist/lib/constants/about.js +0 -32
  295. package/dist/lib/constants/adRequest.js +0 -113
  296. package/dist/lib/constants/contact.js +0 -40
  297. package/dist/lib/constants/faq.js +0 -36
  298. package/dist/lib/constants/gallery.js +0 -42
  299. package/dist/lib/constants/page.js +0 -69
  300. package/dist/lib/constants/schedule.js +0 -71
  301. package/dist/lib/google-analytics.jsx +0 -148
  302. package/dist/lib/utils.js +0 -9
  303. package/dist/lib/verify-user.js +0 -142
  304. package/dist/middleware.js +0 -37
  305. package/dist/tailwind.config.js +0 -86
  306. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -1,135 +0,0 @@
1
- 'use client';
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __rest = (this && this.__rest) || function (s, e) {
14
- var t = {};
15
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
16
- t[p] = s[p];
17
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
18
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
19
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
20
- t[p[i]] = s[p[i]];
21
- }
22
- return t;
23
- };
24
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
25
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
26
- if (ar || !(i in from)) {
27
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
28
- ar[i] = from[i];
29
- }
30
- }
31
- return to.concat(ar || Array.prototype.slice.call(from));
32
- };
33
- import * as React from 'react';
34
- var TOAST_LIMIT = 1;
35
- var TOAST_REMOVE_DELAY = 1000000;
36
- var actionTypes = {
37
- ADD_TOAST: 'ADD_TOAST',
38
- UPDATE_TOAST: 'UPDATE_TOAST',
39
- DISMISS_TOAST: 'DISMISS_TOAST',
40
- REMOVE_TOAST: 'REMOVE_TOAST',
41
- };
42
- var count = 0;
43
- function genId() {
44
- count = (count + 1) % Number.MAX_SAFE_INTEGER;
45
- return count.toString();
46
- }
47
- var toastTimeouts = new Map();
48
- var addToRemoveQueue = function (toastId) {
49
- if (toastTimeouts.has(toastId)) {
50
- return;
51
- }
52
- var timeout = setTimeout(function () {
53
- toastTimeouts.delete(toastId);
54
- dispatch({
55
- type: 'REMOVE_TOAST',
56
- toastId: toastId,
57
- });
58
- }, TOAST_REMOVE_DELAY);
59
- toastTimeouts.set(toastId, timeout);
60
- };
61
- export var reducer = function (state, action) {
62
- switch (action.type) {
63
- case 'ADD_TOAST':
64
- return __assign(__assign({}, state), { toasts: __spreadArray([action.toast], state.toasts, true).slice(0, TOAST_LIMIT) });
65
- case 'UPDATE_TOAST':
66
- return __assign(__assign({}, state), { toasts: state.toasts.map(function (t) {
67
- return t.id === action.toast.id ? __assign(__assign({}, t), action.toast) : t;
68
- }) });
69
- case 'DISMISS_TOAST': {
70
- var toastId_1 = action.toastId;
71
- if (toastId_1) {
72
- addToRemoveQueue(toastId_1);
73
- }
74
- else {
75
- state.toasts.forEach(function (toast) {
76
- addToRemoveQueue(toast.id);
77
- });
78
- }
79
- return __assign(__assign({}, state), { toasts: state.toasts.map(function (t) {
80
- return t.id === toastId_1 || toastId_1 === undefined
81
- ? __assign(__assign({}, t), { open: false }) : t;
82
- }) });
83
- }
84
- case 'REMOVE_TOAST':
85
- if (action.toastId === undefined) {
86
- return __assign(__assign({}, state), { toasts: [] });
87
- }
88
- return __assign(__assign({}, state), { toasts: state.toasts.filter(function (t) { return t.id !== action.toastId; }) });
89
- }
90
- };
91
- var listeners = [];
92
- var memoryState = { toasts: [] };
93
- function dispatch(action) {
94
- memoryState = reducer(memoryState, action);
95
- listeners.forEach(function (listener) {
96
- listener(memoryState);
97
- });
98
- }
99
- function toast(_a) {
100
- var props = __rest(_a, []);
101
- var id = genId();
102
- var update = function (props) {
103
- return dispatch({
104
- type: 'UPDATE_TOAST',
105
- toast: __assign(__assign({}, props), { id: id }),
106
- });
107
- };
108
- var dismiss = function () { return dispatch({ type: 'DISMISS_TOAST', toastId: id }); };
109
- dispatch({
110
- type: 'ADD_TOAST',
111
- toast: __assign(__assign({}, props), { id: id, open: true, onOpenChange: function (open) {
112
- if (!open)
113
- dismiss();
114
- } }),
115
- });
116
- return {
117
- id: id,
118
- dismiss: dismiss,
119
- update: update,
120
- };
121
- }
122
- function useToast() {
123
- var _a = React.useState(memoryState), state = _a[0], setState = _a[1];
124
- React.useEffect(function () {
125
- listeners.push(setState);
126
- return function () {
127
- var index = listeners.indexOf(setState);
128
- if (index > -1) {
129
- listeners.splice(index, 1);
130
- }
131
- };
132
- }, [state]);
133
- return __assign(__assign({}, state), { toast: toast, dismiss: function (toastId) { return dispatch({ type: 'DISMISS_TOAST', toastId: toastId }); } });
134
- }
135
- export { useToast, toast };
@@ -1,144 +0,0 @@
1
- "use client";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- import { createContext, useContext, useState, useEffect } from "react";
39
- import { useAuth as useClerkAuth, useUser } from "@clerk/nextjs";
40
- var AuthContext = createContext(undefined);
41
- var userCache = new Map();
42
- export function AuthProvider(_a) {
43
- var _this = this;
44
- var children = _a.children;
45
- var _b = useState(null), user = _b[0], setUser = _b[1];
46
- var _c = useState(true), authLoading = _c[0], setAuthLoading = _c[1];
47
- var _d = useState(null), error = _d[0], setError = _d[1]; // Added error state
48
- var _e = useClerkAuth(), isSignedIn = _e.isSignedIn, userId = _e.userId;
49
- var clerkUser = useUser().user;
50
- var syncUserToStrapi = function (clerkUserData) { return __awaiter(_this, void 0, void 0, function () {
51
- var response, errorText, strapiUser, error_1;
52
- return __generator(this, function (_a) {
53
- switch (_a.label) {
54
- case 0:
55
- if (!clerkUserData || !userId) {
56
- console.error("Missing clerkUserData or userId:", { clerkUserData: clerkUserData, userId: userId });
57
- setError("Missing user data for sync");
58
- return [2 /*return*/];
59
- }
60
- if (userCache.has(userId)) {
61
- setUser(userCache.get(userId));
62
- setError(null);
63
- return [2 /*return*/];
64
- }
65
- _a.label = 1;
66
- case 1:
67
- _a.trys.push([1, 6, , 7]);
68
- return [4 /*yield*/, fetch("/api/sync-user", {
69
- method: "POST",
70
- headers: {
71
- "Content-Type": "application/json",
72
- },
73
- body: JSON.stringify(clerkUserData),
74
- })];
75
- case 2:
76
- response = _a.sent();
77
- if (!!response.ok) return [3 /*break*/, 4];
78
- return [4 /*yield*/, response.text()];
79
- case 3:
80
- errorText = _a.sent();
81
- console.error("Failed to sync user: ".concat(response.status), errorText);
82
- setError("Failed to sync user: ".concat(response.status));
83
- return [2 /*return*/];
84
- case 4: return [4 /*yield*/, response.json()];
85
- case 5:
86
- strapiUser = _a.sent();
87
- userCache.set(userId, strapiUser);
88
- setUser(strapiUser);
89
- setError(null);
90
- return [3 /*break*/, 7];
91
- case 6:
92
- error_1 = _a.sent();
93
- console.error("Error syncing user to Strapi:", error_1);
94
- setError(error_1 instanceof Error ? error_1.message : "Failed to sync user");
95
- return [3 /*break*/, 7];
96
- case 7: return [2 /*return*/];
97
- }
98
- });
99
- }); };
100
- var checkSession = function () { return __awaiter(_this, void 0, void 0, function () {
101
- var err_1;
102
- return __generator(this, function (_a) {
103
- switch (_a.label) {
104
- case 0:
105
- setAuthLoading(true);
106
- if (!isSignedIn || !userId || !clerkUser) {
107
- setUser(null);
108
- setError("User not signed in");
109
- setAuthLoading(false);
110
- return [2 /*return*/];
111
- }
112
- _a.label = 1;
113
- case 1:
114
- _a.trys.push([1, 3, 4, 5]);
115
- return [4 /*yield*/, syncUserToStrapi(clerkUser)];
116
- case 2:
117
- _a.sent();
118
- return [3 /*break*/, 5];
119
- case 3:
120
- err_1 = _a.sent();
121
- console.error("checkSession error:", err_1);
122
- setError(err_1 instanceof Error ? err_1.message : "Session check failed");
123
- setUser(null);
124
- return [3 /*break*/, 5];
125
- case 4:
126
- setAuthLoading(false);
127
- return [7 /*endfinally*/];
128
- case 5: return [2 /*return*/];
129
- }
130
- });
131
- }); };
132
- useEffect(function () {
133
- checkSession();
134
- }, [isSignedIn, userId, clerkUser]);
135
- return (<AuthContext.Provider value={{ user: user, authLoading: authLoading, error: error, checkSession: checkSession }}>
136
- {children}
137
- </AuthContext.Provider>);
138
- }
139
- export function useStrapiAuth() {
140
- var context = useContext(AuthContext);
141
- if (!context)
142
- throw new Error("useStrapiAuth must be used within an AuthProvider");
143
- return context;
144
- }
@@ -1,32 +0,0 @@
1
- // constants.ts
2
- // Constants for hardcoded text in the application, organized by file and purpose
3
- export var ABOUT_PAGE = {
4
- // UI Text for AboutPage.tsx
5
- UI: {
6
- // Main heading for the About page
7
- MAIN_HEADING: "About DevVista Kit",
8
- // Section heading for the client success story
9
- SUCCESS_STORY_HEADING: "Client Success Story: Radio Host Ted Long’s Fitness Journey",
10
- // Paragraph describing Ted Long's fitness journey
11
- SUCCESS_STORY_TEXT: "\n Ted Long is a busy man, so creating the right workout plan for him was essential. I\n scheduled him to come to the gym five days per week just after his radio Co-hosting work at\n 93Q each day. Two days per week, Mondays and Fridays, we worked one on one for about 90\n minutes. Our workouts followed my philosophy of continuous cross training, so they included\n weight training, circuit training, interval training, core work and more. On Tuesdays,\n Wednesdays and Thursdays he joined in on my group exercise classes. On Tuesdays he joined\n Body Blast, where we worked on muscle strength and endurance from head to toe, and focused\n the first portion of that workout on the core of the body. On Wednesdays, Ted joined my\n Flex Fusion class, his favorite, which is a yoga-type class that focuses on flexibility,\n strength and balance. On Thursdays he came to my Core and Cardio X-train class. In that\n class, we first work the core of the body, often using stability balls, medicine balls and\n bosu\u2019s, we then do an intense cardio workout class. Thursday\u2019s class varies from step\n aerobics, cardio kickbox with jump ropes, to circuit or interval tyle workout classes. Ted was\n especially good on the step and not too shabby with a jump rope either! He was a pleasure\n to work with and we loved having him around!\n ",
12
- },
13
- // Error messages for AboutPage.tsx
14
- ERRORS: {
15
- // Error when bio data fetch fails with status code
16
- FETCH_BIO_FAILED: "Failed to fetch bio data: ${response.status}",
17
- // Error when bio data is not found in the response
18
- BIO_NOT_FOUND: "Bio data not found",
19
- // Generic error for bio data fetch failure
20
- FETCH_BIO_ERROR: "An error occurred while fetching bio data",
21
- // Error when user is not authorized to update bio
22
- UNAUTHORIZED_UPDATE: "Unauthorized: Only admin can update bio data",
23
- // Error when an invalid image type is uploaded
24
- INVALID_IMAGE_TYPE: "Only JPEG, PNG, or GIF images are allowed",
25
- // Error when no authentication token is available
26
- NO_AUTH_TOKEN: "No authentication token available",
27
- // Error when bio update fails with status code
28
- UPDATE_BIO_FAILED: "Failed to update bio data: ${response.status}",
29
- // Generic error for bio update failure
30
- UPDATE_BIO_ERROR: "Failed to update bio data",
31
- },
32
- };
@@ -1,113 +0,0 @@
1
- // app/constants/adRequest.ts
2
- // Constants for hardcoded text in app/adRequest/page.tsx, organized by purpose
3
- export var AD_REQUEST_PAGE = {
4
- // UI Text for AdRequest page
5
- UI: {
6
- // Heading when user is not signed in
7
- NOT_AUTHENTICATED_HEADING: "Not authenticated",
8
- // Message when user is not signed in
9
- NOT_AUTHENTICATED_MESSAGE: "You must be logged in to view this page.",
10
- // Heading when user is not admin
11
- UNAUTHORIZED_HEADING: "Unauthorized",
12
- // Message when user is not admin
13
- UNAUTHORIZED_MESSAGE: "Only admins can access the Ad Request dashboard.",
14
- // Main dashboard heading
15
- DASHBOARD_HEADING: "Ad Request Dashboard",
16
- // Dashboard subheading
17
- DASHBOARD_SUBHEADING: "Create and manage your advertising campaigns",
18
- // Message indicating admin access
19
- ADMIN_ACCESS_MESSAGE: "Admin access granted",
20
- // Heading for credits section
21
- CREDITS_HEADING: "Available Credits",
22
- // Description for credits section
23
- CREDITS_DESCRIPTION: "Use credits to create ad requests",
24
- // Partial text for credits reset date
25
- CREDITS_RESET_TEXT: "Credits reset to 3 on ",
26
- // Heading for ad request form
27
- CREATE_AD_REQUEST_HEADING: "Create Ad Request",
28
- // Description for ad request form
29
- CREATE_AD_REQUEST_DESCRIPTION: "Specify your ad campaign details",
30
- // Label for platform select
31
- PLATFORM_LABEL: "Select Platform *",
32
- // Placeholder for platform select
33
- PLATFORM_PLACEHOLDER: "Choose a platform",
34
- // Platform option for Facebook
35
- FACEBOOK_ADS: "Facebook Ads",
36
- // Platform option for TikTok
37
- TIKTOK_ADS: "TikTok Ads",
38
- // Error message when platform is not selected
39
- PLATFORM_REQUIRED: "Please select a platform",
40
- // Label for ad type input
41
- AD_TYPE_LABEL: "Ad Type *",
42
- // Placeholder for ad type input
43
- AD_TYPE_PLACEHOLDER: "e.g., Video ad, Carousel ad, Story ad",
44
- // Error message when ad type is empty
45
- AD_TYPE_REQUIRED: "Please enter an ad type",
46
- // Label for description textarea
47
- DESCRIPTION_LABEL: "Additional Details",
48
- // Placeholder for description textarea
49
- DESCRIPTION_PLACEHOLDER: "Describe your target audience, goals, or specific requirements...",
50
- // Character count text for description
51
- DESCRIPTION_CHAR_COUNT: "{description.length}/500 characters",
52
- // Partial text for no credits alert
53
- NO_CREDITS_MESSAGE: "No credits available. ",
54
- // Message for admins when no credits
55
- NO_CREDITS_ADMIN: "Reset to continue.",
56
- // Message for non-admins when no credits
57
- NO_CREDITS_NON_ADMIN: "Await next reset.",
58
- // Heading for confirm popup
59
- CONFIRM_POPUP_HEADING: "Confirm Ad Request",
60
- // Partial message for confirm popup
61
- CONFIRM_POPUP_MESSAGE: "Are you sure you want to submit this ad request? This action cannot be undone unless you contact support at ",
62
- // Email for confirm popup
63
- SUPPORT_EMAIL: "devvistainfo@gmail.com",
64
- // Heading for request history
65
- REQUEST_HISTORY_HEADING: "Request History",
66
- // Description for request history
67
- REQUEST_HISTORY_DESCRIPTION: "View your recent ad requests",
68
- // Message when no requests exist
69
- NO_REQUESTS_MESSAGE: "No requests yet",
70
- // Message encouraging first request
71
- FIRST_REQUEST_MESSAGE: "Submit your first ad request to get started",
72
- // Footer text about credits
73
- FOOTER_TEXT: "Each ad request costs 1 credit • Credits reset monthly • Admin manual reset available",
74
- // Success message after submission
75
- SUCCESS_MESSAGE: "Ad request submitted successfully! Credit deducted.",
76
- // Badge text for Facebook platform
77
- FACEBOOK_BADGE: "Facebook",
78
- // Badge text for TikTok platform
79
- TIKTOK_BADGE: "TikTok",
80
- },
81
- // Button Text for AdRequest page
82
- BUTTONS: {
83
- // Reset credits button
84
- RESET_CREDITS: "Reset Credits",
85
- // Cancel button in confirm popup
86
- CANCEL: "Cancel",
87
- // Confirm button in confirm popup
88
- CONFIRM: "Confirm",
89
- // Submit button in non-loading state
90
- SUBMIT_REQUEST: "Submit Request (1 Credit)",
91
- // Submit button in loading state
92
- SUBMITTING: "Submitting...",
93
- },
94
- // Error Messages for AdRequest page
95
- ERRORS: {
96
- // Default error for fetch failure
97
- FETCH_AD_REQUESTS_FAILED: "Failed to fetch ad requests",
98
- // Generic error for fetch and submit failures
99
- UNKNOWN_ERROR: "An unknown error occurred",
100
- // Error when submitting without sign-in
101
- NOT_SIGNED_IN: "You must be signed in to submit an ad request",
102
- // Error when no credits available
103
- CREDIT_LIMIT_REACHED: "Monthly ad request limit reached (3 requests)",
104
- // Error when required fields are missing
105
- REQUIRED_FIELDS_MISSING: "Please fill in all required fields",
106
- // Default error for submit failure
107
- SUBMIT_AD_REQUEST_FAILED: "Failed to submit ad request",
108
- // Error when non-admin tries to reset credits
109
- UNAUTHORIZED_RESET: "Unauthorized: Only admins can reset credits",
110
- // Default error for reset credits failure
111
- RESET_CREDITS_FAILED: "Failed to reset credits!!",
112
- },
113
- };
@@ -1,40 +0,0 @@
1
- // app/constants/contact.ts
2
- // Constants for hardcoded text in app/contact/page.tsx, organized by purpose
3
- export var CONTACT_PAGE = {
4
- // UI Text for ContactPage
5
- UI: {
6
- // Main heading for the Contact page
7
- MAIN_HEADING: "Contact",
8
- // Loading text for iframe
9
- LOADING_TEXT: "Loading...",
10
- // Section heading for contact info
11
- CONTACT_INFO_HEADING: "Find Us",
12
- // Address for contact info
13
- ADDRESS: "215 W. Manlius St., East Syracuse, NY 13057",
14
- // Phone number 1 for contact info
15
- PHONE_1: "315-214-5466",
16
- // Phone number 2 for contact info
17
- PHONE_2: "315-415-4043",
18
- // Email for contact info
19
- SUPPORT_EMAIL: "devvistainfo@gmail.com",
20
- // Heading for gym hours
21
- HOURS_HEADING: "Hours of Gym",
22
- // Text for gym hours
23
- HOURS_TEXT: "Open 24/7—We Never Stop!",
24
- // Title for map iframe
25
- MAP_TITLE: "DevVista Kit Location",
26
- },
27
- // Error Messages and Toast Notifications for ContactPage
28
- ERRORS: {
29
- // Form validation error for name
30
- NAME_VALIDATION_ERROR: "Name must be at least 2 characters.",
31
- // Form validation error for email
32
- EMAIL_VALIDATION_ERROR: "Please enter a valid email address.",
33
- // Form validation error for message
34
- MESSAGE_VALIDATION_ERROR: "Message must be at least 10 characters.",
35
- // Toast title on successful form submission
36
- TOAST_SUCCESS_TITLE: "Message Fired Off!",
37
- // Toast description on successful form submission
38
- TOAST_SUCCESS_DESCRIPTION: "We’ll hit you back ASAP—get ready!",
39
- },
40
- };
@@ -1,36 +0,0 @@
1
- // app/constants/faq.ts
2
- // Constants for hardcoded text in app/faq/page.tsx, organized by purpose
3
- export var FAQ_PAGE = {
4
- // UI Text for FAQPage
5
- UI: {
6
- // Main heading for the FAQ page
7
- MAIN_HEADING: "Frequently Asked Questions",
8
- // FAQ 1
9
- FAQ_1_QUESTION: "Who should check with a doctor before starting an exercise program?",
10
- FAQ_1_ANSWER: "You should check with your doctor before you start any exercise program if you are over 40, if you smoke, if you are being treated for any chronic illness or injury, if you lead a sedentary lifestyle, if you are on medications, have diabetes, high blood pressure, or high cholesterol, any history of heart disease, back pain or any other orthopedic problems.",
11
- // FAQ 2
12
- FAQ_2_QUESTION: "How many days per week should I exercise?",
13
- FAQ_2_ANSWER: "The old government guidelines used to suggest that three days per week was all that was needed, but the new government guidelines suggest that persons should exercise most days per week. So if you aim to do some form of physical activity 6 to 7 times per week, and if you only get in 4 to 5 days, that’s not so bad!",
14
- // FAQ 3
15
- FAQ_3_QUESTION: "What is the best type of cardiovascular exercise a person can do?",
16
- FAQ_3_ANSWER: "There are so many forms of cardiovascular exercise a person can choose from. Some of the more common forms are walking, running, cycling, swimming, cross country skiing, elliptical trainer, stair climber, any aerobics class (step, kickboxing, high/low dance etc…), jump rope, rebounding on a mini trampoline as well as sports such as soccer and basketball and many more. The best type of cardiovascular exercise for any person are the ones that the individual enjoys and will stick with over the long haul. Not every exercise is for every person, but each person can find something that suits their needs and abilities.",
17
- // FAQ 4
18
- FAQ_4_QUESTION: "What is my Target Heart Rate and how do I find it?",
19
- FAQ_4_ANSWER: "Your target heart rate is where your heart rate should optimally be during an aerobic workout. Your target heart rate range is 50% – 90% of your maximum heart rate. Here’s how to calculate your target heart rate: 220 – your age = Maximum Heart Rate (MHR). MHR times 50% to 90% = Target Heart Rate (THR). These numbers serve as a guideline—an indicator of how hard you should be working. Newer exercisers should begin at the lower end of the % and experienced exercisers can go up toward the higher end of the % as their fitness levels increase and allow.",
20
- // FAQ 5
21
- FAQ_5_QUESTION: "How often should I lift weights?",
22
- FAQ_5_ANSWER: "In general, strength training or weight lifting for each muscle group should be done 2 to 3 days per week on non-consecutive days. On the other hand, you don’t have to take the all or nothing approach either. It’s better to do a little strength training than none at all. So, even if you can only fit in one strength training routine in a week, you’ll still benefit from it.",
23
- // FAQ 6
24
- FAQ_6_QUESTION: "How long will it take before I see results?",
25
- FAQ_6_ANSWER: "Seeing results usually varies with each individual. Generally, if a person is consistent with a balanced program, they should begin to feel a difference in their bodies in about three weeks and actually see some significant changes in about three months.",
26
- // FAQ 7
27
- FAQ_7_QUESTION: "When is the best time to stretch my muscles, before or after a workout?",
28
- FAQ_7_ANSWER: "Stretching and flexibility are very important aspects of good physical fitness. Ideally it’s best to stretch before and after a workout. When stretching before a workout, be sure that the muscles are warmed up for at least 5 minutes. If you can’t do both, then make stretching after your workout a priority. Remember to start slowly, breathe into the stretch and don’t bounce!",
29
- // FAQ 8
30
- FAQ_8_QUESTION: "Should I eat before or after a workout?",
31
- FAQ_8_ANSWER: "It’s okay to eat certain foods before and after exercise, but don’t overdo it. Consuming a heavy meal just before a workout can interfere with proper digestion. By the same token, don’t try to work out if you are starving. Your body needs fuel for the activity. Some quick carbohydrates from a piece of fruit or an energy bar should do the trick. The same goes for an early morning workout; maybe a piece of whole grain toast and some fruit juice. After exercise, allow your body to cool down before eating. Then be sure to include some carbs with your meal to replace the glycogen stores in the muscle that you used during your workout. And of course, be sure to drink plenty of water before, during and after your workouts.",
32
- // FAQ 9
33
- FAQ_9_QUESTION: "What can I do to stay motivated to work out?",
34
- FAQ_9_ANSWER: "Staying motivated over the long haul can sometimes be a challenge. Get a friend/spouse or significant other to join you and help keep you accountable. You can also try changing your routine every few months. Maybe trying a new class at your health club or take your workouts outside for a change. You may also want to hire a qualified personal trainer for a few sessions to give you different ideas on how to change your current workouts to keep them fun and effective.",
35
- },
36
- };
@@ -1,42 +0,0 @@
1
- // app/constants/gallery.ts
2
- // Constants for hardcoded text in app/gallery/page.tsx, organized by purpose
3
- export var GALLERY_PAGE = {
4
- // UI Text for GalleryPage
5
- UI: {
6
- // Main heading for the Gallery page
7
- MAIN_HEADING: "Gallery",
8
- // Loading text for admin status feedback
9
- LOADING_TEXT: "Loading...",
10
- // Message when logged in as admin
11
- ADMIN_LOGGED_IN_MESSAGE: "You are logged in as an admin.",
12
- },
13
- // Error Messages for GalleryPage
14
- ERRORS: {
15
- // Error when no authentication token is available
16
- NO_AUTH_TOKEN: "No authentication token available",
17
- // Error when fetching images fails with error text
18
- FETCH_IMAGES_FAILED: "Failed to load images: ${errorText}",
19
- // Warning when more than 100 images are available
20
- PAGINATION_WARNING: "Warning: Only the first 100 images are displayed. Contact support to view all images.",
21
- // Generic error for fetch failure
22
- FETCH_ERROR: "An error occurred while fetching data",
23
- // Error when no file is selected for upload
24
- NO_FILE_SELECTED: "No file selected",
25
- // Error when an invalid file type is uploaded
26
- INVALID_FILE_TYPE: "Only JPEG, PNG, or GIF images are allowed",
27
- // Error when non-admin tries to upload
28
- UNAUTHORIZED_UPLOAD: "Unauthorized: Only admins can upload images",
29
- // Error for authentication issues during upload or delete
30
- AUTHENTICATION_ERROR: "Authentication error. Please log in again.",
31
- // Error when upload fails with status code
32
- UPLOAD_IMAGE_FAILED: "Failed to upload image: ${response.status}",
33
- // Generic error for upload failure
34
- UPLOAD_IMAGE_ERROR: "Failed to upload image",
35
- // Error when non-admin tries to delete
36
- UNAUTHORIZED_DELETE: "Unauthorized: Only admins can delete images",
37
- // Error when delete fails with status code
38
- DELETE_IMAGE_FAILED: "Failed to delete image: ${response.status}",
39
- // Generic error for delete failure
40
- DELETE_IMAGE_ERROR: "Failed to delete image",
41
- },
42
- };
@@ -1,69 +0,0 @@
1
- // app/constants/home.ts
2
- // Constants for hardcoded text in app/page.tsx, organized by purpose
3
- export var HOME_PAGE = {
4
- // UI Text for HomePage
5
- UI: {
6
- // HeroSection title
7
- HERO_TITLE: "DevVista Kit",
8
- // HeroSection subtitle
9
- HERO_SUBTITLE: "Your 24/7 Fitness Destination",
10
- // HeroSection video aria label
11
- HERO_VIDEO_ARIA_LABEL: "Promotional video for DevVista Kit",
12
- // FeaturesSection title
13
- FEATURES_TITLE: "Zumba®",
14
- // FeaturesSection description
15
- FEATURES_DESCRIPTION: "Variety of Memberships Available",
16
- // Features for FeaturesSection
17
- FEATURE_1: "24 Hour Access",
18
- FEATURE_2: "Locker Rooms",
19
- FEATURE_3: "Strength, Cardio & Flexibility Classes",
20
- FEATURE_4: "Personal Training",
21
- FEATURE_5: "Partner and Small Group Training",
22
- // Background images for ScheduleCarousel
23
- BACKGROUND_IMAGE_1: "/images/classes/zoomba.jpg",
24
- BACKGROUND_IMAGE_2: "/images/classes/cardioxtrain.jpg",
25
- BACKGROUND_IMAGE_3: "/images/classes/seniorstretch.jpg",
26
- BACKGROUND_IMAGE_4: "/images/classes/bodyblast.jpg",
27
- BACKGROUND_IMAGE_5: "/images/classes/flexiblefriday.jpg",
28
- BACKGROUND_IMAGE_6: "/images/classes/combo.jpg",
29
- BACKGROUND_IMAGE_7: "/images/classes/noclasses.jpg",
30
- // Video source for HeroSection
31
- HERO_VIDEO_SRC: "/images/videos/FitStopLoopVideo.mp4",
32
- },
33
- // Button Text for HomePage
34
- BUTTONS: {
35
- // HeroSection call-to-action text
36
- HERO_CTA_TEXT: "Check Our Rates",
37
- // FeaturesSection call-to-action text
38
- FEATURES_CTA_TEXT: "Explore Classes",
39
- },
40
- // Error Messages for HomePage
41
- ERRORS: {
42
- // Error when schedule fetch fails
43
- FETCH_SCHEDULE_FAILED: "Failed to load schedule. Displaying empty schedule.",
44
- // Warning when more than 100 files are available
45
- PAGINATION_WARNING: "Warning: Only the first 100 files are displayed. Contact support to view all files.",
46
- // Error when files fetch fails
47
- FETCH_FILES_FAILED: "Failed to load files.",
48
- // Generic error for fetch failure
49
- FETCH_ERROR: "An error occurred while fetching data",
50
- // Error when non-admin tries to upload
51
- UNAUTHORIZED_UPLOAD: "Unauthorized: Only admin can upload files",
52
- // Error when no file is selected for upload
53
- NO_FILE_SELECTED: "No file selected",
54
- // Error when an invalid file type is uploaded
55
- INVALID_FILE_TYPE: "Only PDF files are allowed",
56
- // Error when no authentication token is available
57
- NO_AUTH_TOKEN: "No authentication token available",
58
- // Error when upload fails with status code
59
- UPLOAD_FILE_FAILED: "Failed to upload file: ${response.status}",
60
- // Generic error for upload failure
61
- UPLOAD_FILE_ERROR: "Failed to upload file",
62
- // Error when non-admin tries to delete
63
- UNAUTHORIZED_DELETE: "Unauthorized: Only admin can delete files",
64
- // Error when delete fails with status code
65
- DELETE_FILE_FAILED: "Failed to delete file: ${response.status}",
66
- // Generic error for delete failure
67
- DELETE_FILE_ERROR: "Failed to delete file",
68
- },
69
- };