@akinon/projectzero 1.32.0 → 1.33.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/app-template/.editorconfig +7 -0
- package/app-template/.env.example +9 -0
- package/app-template/.eslintignore +1 -0
- package/app-template/.eslintrc.js +31 -0
- package/app-template/.gitattributes +18 -0
- package/app-template/.husky/pre-commit +4 -0
- package/app-template/.lintstagedrc.js +12 -0
- package/app-template/.prettierrc +13 -0
- package/app-template/.releaserc.json +49 -0
- package/app-template/.stylelintrc.json +37 -0
- package/app-template/.vscode/extensions.json +11 -0
- package/app-template/.vscode/launch.json +29 -0
- package/app-template/.yarnrc +1 -0
- package/app-template/CHANGELOG.md +636 -0
- package/app-template/LICENSE +21 -0
- package/app-template/Procfile +1 -0
- package/app-template/README.md +29 -0
- package/app-template/akinon.json +28 -0
- package/app-template/bitbucket-pipelines.yml +54 -0
- package/app-template/build.sh +7 -0
- package/app-template/docs/CHANGELOG.md +85 -0
- package/app-template/docs/advanced-usage.md +43 -0
- package/app-template/docs/basic-setup.md +59 -0
- package/app-template/docs/data-fetching/client/account.md +1064 -0
- package/app-template/docs/data-fetching/client/address.md +805 -0
- package/app-template/docs/data-fetching/client/basket.md +107 -0
- package/app-template/docs/data-fetching/client/checkout.md +904 -0
- package/app-template/docs/data-fetching/client/misc.md +135 -0
- package/app-template/docs/data-fetching/client/product.md +284 -0
- package/app-template/docs/data-fetching/client/user.md +56 -0
- package/app-template/docs/data-fetching/client/wishlist.md +111 -0
- package/app-template/docs/data-fetching/server/category.md +324 -0
- package/app-template/docs/data-fetching/server/flat-page.md +42 -0
- package/app-template/docs/data-fetching/server/list.md +353 -0
- package/app-template/docs/data-fetching/server/menu.md +363 -0
- package/app-template/docs/data-fetching/server/product.md +131 -0
- package/app-template/docs/data-fetching/server/seo.md +44 -0
- package/app-template/docs/data-fetching/server/special-page.md +79 -0
- package/app-template/docs/data-fetching/server/widget.md +218 -0
- package/app-template/docs/delete-account.md +25 -0
- package/app-template/docs/deployment.md +46 -0
- package/app-template/docs/dynamic-route.md +33 -0
- package/app-template/docs/icons.md +52 -0
- package/app-template/docs/localization.md +204 -0
- package/app-template/docs/logging.md +48 -0
- package/app-template/docs/plugins.md +76 -0
- package/app-template/docs/seo-management.md +125 -0
- package/app-template/docs/static-assets.md +36 -0
- package/app-template/docs/widgets.md +127 -0
- package/app-template/global.d.ts +1 -0
- package/app-template/jest.config.ts +34 -0
- package/app-template/next-env.d.ts +6 -0
- package/app-template/next.config.mjs +34 -0
- package/app-template/package.json +97 -0
- package/app-template/plugins.d.ts +1 -0
- package/app-template/postcss.config.js +6 -0
- package/app-template/public/404.png +0 -0
- package/app-template/public/500.png +0 -0
- package/app-template/public/apple-splash-1125-2436.jpg +0 -0
- package/app-template/public/apple-splash-1136-640.jpg +0 -0
- package/app-template/public/apple-splash-1170-2532.jpg +0 -0
- package/app-template/public/apple-splash-1242-2208.jpg +0 -0
- package/app-template/public/apple-splash-1242-2688.jpg +0 -0
- package/app-template/public/apple-splash-1284-2778.jpg +0 -0
- package/app-template/public/apple-splash-1334-750.jpg +0 -0
- package/app-template/public/apple-splash-1536-2048.jpg +0 -0
- package/app-template/public/apple-splash-1620-2160.jpg +0 -0
- package/app-template/public/apple-splash-1668-2224.jpg +0 -0
- package/app-template/public/apple-splash-1668-2388.jpg +0 -0
- package/app-template/public/apple-splash-1792-828.jpg +0 -0
- package/app-template/public/apple-splash-2048-1536.jpg +0 -0
- package/app-template/public/apple-splash-2048-2732.jpg +0 -0
- package/app-template/public/apple-splash-2160-1620.jpg +0 -0
- package/app-template/public/apple-splash-2208-1242.jpg +0 -0
- package/app-template/public/apple-splash-2224-1668.jpg +0 -0
- package/app-template/public/apple-splash-2388-1668.jpg +0 -0
- package/app-template/public/apple-splash-2436-1125.jpg +0 -0
- package/app-template/public/apple-splash-2532-1170.jpg +0 -0
- package/app-template/public/apple-splash-2688-1242.jpg +0 -0
- package/app-template/public/apple-splash-2732-2048.jpg +0 -0
- package/app-template/public/apple-splash-2778-1284.jpg +0 -0
- package/app-template/public/apple-splash-640-1136.jpg +0 -0
- package/app-template/public/apple-splash-750-1334.jpg +0 -0
- package/app-template/public/apple-splash-828-1792.jpg +0 -0
- package/app-template/public/apple-touch-icon-152x152.png +0 -0
- package/app-template/public/apple-touch-icon-167x167.png +0 -0
- package/app-template/public/apple-touch-icon-180x180.png +0 -0
- package/app-template/public/apple-touch-icon.png +0 -0
- package/app-template/public/apple.svg +47 -0
- package/app-template/public/cvv.jpg +0 -0
- package/app-template/public/facebook.svg +3 -0
- package/app-template/public/google.svg +12 -0
- package/app-template/public/icon-192x192.png +0 -0
- package/app-template/public/icon-256x256.png +0 -0
- package/app-template/public/icon-384x384.png +0 -0
- package/app-template/public/icon-512x512.png +0 -0
- package/app-template/public/icon-sprite.svg +528 -0
- package/app-template/public/locales/en/account.json +490 -0
- package/app-template/public/locales/en/auth.json +100 -0
- package/app-template/public/locales/en/basket.json +50 -0
- package/app-template/public/locales/en/category.json +26 -0
- package/app-template/public/locales/en/checkout.json +152 -0
- package/app-template/public/locales/en/common.json +65 -0
- package/app-template/public/locales/en/forgot_password.json +41 -0
- package/app-template/public/locales/en/form.json +5 -0
- package/app-template/public/locales/en/product.json +39 -0
- package/app-template/public/locales/tr/account.json +490 -0
- package/app-template/public/locales/tr/auth.json +100 -0
- package/app-template/public/locales/tr/basket.json +50 -0
- package/app-template/public/locales/tr/category.json +26 -0
- package/app-template/public/locales/tr/checkout.json +152 -0
- package/app-template/public/locales/tr/common.json +65 -0
- package/app-template/public/locales/tr/forgot_password.json +41 -0
- package/app-template/public/locales/tr/form.json +5 -0
- package/app-template/public/locales/tr/product.json +39 -0
- package/app-template/public/logo.svg +29 -0
- package/app-template/public/manifest.json +35 -0
- package/app-template/public/mastercard.png +0 -0
- package/app-template/public/mastersecure.png +0 -0
- package/app-template/public/mfs-client.min.js +3 -0
- package/app-template/public/noimage.jpg +0 -0
- package/app-template/public/safari-pinned-tab.svg +320 -0
- package/app-template/public/ssl-secure.png +0 -0
- package/app-template/public/vbv.png +0 -0
- package/app-template/public/visa.png +0 -0
- package/app-template/public/zepto.min.js +2 -0
- package/app-template/sentry.client.config.ts +16 -0
- package/app-template/sentry.edge.config.ts +3 -0
- package/app-template/sentry.properties +4 -0
- package/app-template/sentry.server.config.ts +3 -0
- package/app-template/setupTests.ts +4 -0
- package/app-template/src/__tests__/index.test.tsx +7 -0
- package/app-template/src/__tests__/tsconfig.json +7 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/account/address/page.tsx +74 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/account/change-email/page.tsx +174 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/account/change-password/page.tsx +206 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/account/contact/page.tsx +7 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/account/coupons/page.tsx +210 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/account/email-verification/page.tsx +5 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/account/faq/page.tsx +23 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/account/favourite-products/page.tsx +32 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/account/layout.tsx +28 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/account/my-quotations/page.tsx +7 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/account/orders/[id]/cancellation/page.tsx +255 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/account/orders/[id]/layout.tsx +5 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/account/orders/[id]/page.tsx +309 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/account/orders/page.tsx +137 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/account/page.tsx +226 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/account/profile/page.tsx +399 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/address/stores/page.tsx +271 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/anonymous-tracking/page.tsx +33 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/auth/oauth-login/page.tsx +3 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/auth/page.tsx +76 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/basket/page.tsx +77 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/basket-b2b/page.tsx +7 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/category/[pk]/loading.tsx +53 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/category/[pk]/page.tsx +16 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/client-root.tsx +9 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/contact-us/page.tsx +11 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/error.tsx +20 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/flat-page/[pk]/loading.tsx +5 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/flat-page/[pk]/page.tsx +18 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/forms/[pk]/generate/page.tsx +48 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/group-product/[pk]/loading.tsx +5 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/group-product/[pk]/page.tsx +72 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/landing-page/[pk]/loading.tsx +5 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/landing-page/[pk]/page.tsx +23 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/layout.tsx +78 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/list/loading.tsx +53 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/list/page.tsx +16 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/orders/checkout/page.tsx +140 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/orders/completed/[token]/layout.tsx +5 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/orders/completed/[token]/page.tsx +284 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/page.tsx +50 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/product/[pk]/loading.tsx +67 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/product/[pk]/page.tsx +81 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/special-page/[pk]/loading.tsx +53 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/special-page/[pk]/page.tsx +25 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/template.tsx +75 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/users/email-set-primary/[[...id]]/page.tsx +43 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/users/password/reset/page.tsx +79 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/users/registration/account-confirm-email/[[...id]]/page.tsx +43 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/users/reset/[[...id]]/page.tsx +110 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/xml-sitemap/[node]/route.ts +25 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/xml-sitemap/route.ts +37 -0
- package/app-template/src/app/api/cache/route.ts +1 -0
- package/app-template/src/app/api/client/[...slug]/route.ts +1 -0
- package/app-template/src/app/api/form/[...id]/route.ts +7 -0
- package/app-template/src/app/api/logout/route.ts +1 -0
- package/app-template/src/app/api/sentry/route.ts +9 -0
- package/app-template/src/app/api/web-vitals/route.ts +1 -0
- package/app-template/src/app/favicon.ico +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-Black.eot +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-Black.ttf +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-Black.woff +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-Black.woff2 +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-BlackItalic.eot +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-BlackItalic.ttf +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-BlackItalic.woff +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-BlackItalic.woff2 +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-Bold.eot +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-Bold.ttf +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-Bold.woff +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-Bold.woff2 +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-BoldItalic.eot +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-BoldItalic.ttf +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-BoldItalic.woff +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-BoldItalic.woff2 +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-ExtraBold.eot +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-ExtraBold.ttf +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-ExtraBold.woff +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-ExtraBold.woff2 +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-ExtraBoldItalic.eot +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-ExtraBoldItalic.ttf +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-ExtraBoldItalic.woff +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-ExtraBoldItalic.woff2 +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-ExtraLight.eot +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-ExtraLight.ttf +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-ExtraLight.woff +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-ExtraLight.woff2 +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-ExtraLightItalic.eot +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-ExtraLightItalic.ttf +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-ExtraLightItalic.woff +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-ExtraLightItalic.woff2 +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-Italic.eot +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-Italic.ttf +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-Italic.woff +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-Italic.woff2 +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-Light.eot +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-Light.ttf +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-Light.woff +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-Light.woff2 +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-LightItalic.eot +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-LightItalic.ttf +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-LightItalic.woff +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-LightItalic.woff2 +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-Medium.eot +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-Medium.ttf +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-Medium.woff +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-Medium.woff2 +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-MediumItalic.eot +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-MediumItalic.ttf +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-MediumItalic.woff +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-MediumItalic.woff2 +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-Regular.eot +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-Regular.ttf +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-Regular.woff +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-Regular.woff2 +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-SemiBold.eot +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-SemiBold.ttf +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-SemiBold.woff +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-SemiBold.woff2 +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-SemiBoldItalic.eot +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-SemiBoldItalic.ttf +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-SemiBoldItalic.woff +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-SemiBoldItalic.woff2 +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-Thin.eot +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-Thin.ttf +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-Thin.woff +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-Thin.woff2 +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-ThinItalic.eot +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-ThinItalic.ttf +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-ThinItalic.woff +0 -0
- package/app-template/src/assets/fonts/Jost/Jost-ThinItalic.woff2 +0 -0
- package/app-template/src/assets/fonts/Jost/index.scss +269 -0
- package/app-template/src/assets/fonts/index.scss +1 -0
- package/app-template/src/assets/fonts/pz-icon.css +154 -0
- package/app-template/src/assets/fonts/pz-icon.eot +0 -0
- package/app-template/src/assets/fonts/pz-icon.html +456 -0
- package/app-template/src/assets/fonts/pz-icon.scss +300 -0
- package/app-template/src/assets/fonts/pz-icon.svg +144 -0
- package/app-template/src/assets/fonts/pz-icon.ttf +0 -0
- package/app-template/src/assets/fonts/pz-icon.woff +0 -0
- package/app-template/src/assets/fonts/pz-icon.woff2 +0 -0
- package/app-template/src/assets/globals.scss +65 -0
- package/app-template/src/assets/icons/akinon.svg +11 -0
- package/app-template/src/assets/icons/arrow-up.svg +11 -0
- package/app-template/src/assets/icons/bell.svg +1 -0
- package/app-template/src/assets/icons/cart.svg +13 -0
- package/app-template/src/assets/icons/check.svg +19 -0
- package/app-template/src/assets/icons/chevron-down.svg +8 -0
- package/app-template/src/assets/icons/chevron-end.svg +8 -0
- package/app-template/src/assets/icons/chevron-start.svg +8 -0
- package/app-template/src/assets/icons/chevron-up.svg +8 -0
- package/app-template/src/assets/icons/close.svg +12 -0
- package/app-template/src/assets/icons/cvc.svg +54 -0
- package/app-template/src/assets/icons/default.svg +6 -0
- package/app-template/src/assets/icons/directions.svg +14 -0
- package/app-template/src/assets/icons/eye-off.svg +10 -0
- package/app-template/src/assets/icons/eye-on.svg +17 -0
- package/app-template/src/assets/icons/facebook-login.svg +11 -0
- package/app-template/src/assets/icons/facebook.svg +9 -0
- package/app-template/src/assets/icons/giftbox.svg +22 -0
- package/app-template/src/assets/icons/globe.svg +12 -0
- package/app-template/src/assets/icons/google-login.svg +19 -0
- package/app-template/src/assets/icons/google.svg +9 -0
- package/app-template/src/assets/icons/hamburger.svg +5 -0
- package/app-template/src/assets/icons/heart-full.svg +20 -0
- package/app-template/src/assets/icons/heart-stroke.svg +22 -0
- package/app-template/src/assets/icons/info.svg +1 -0
- package/app-template/src/assets/icons/instagram.svg +14 -0
- package/app-template/src/assets/icons/layout-2.svg +7 -0
- package/app-template/src/assets/icons/layout-3.svg +4 -0
- package/app-template/src/assets/icons/logo.svg +24 -0
- package/app-template/src/assets/icons/mail.svg +1 -0
- package/app-template/src/assets/icons/minus.svg +4 -0
- package/app-template/src/assets/icons/money.svg +4 -0
- package/app-template/src/assets/icons/mp-otp.svg +1 -0
- package/app-template/src/assets/icons/pin.svg +16 -0
- package/app-template/src/assets/icons/pinterest.svg +12 -0
- package/app-template/src/assets/icons/plus.svg +5 -0
- package/app-template/src/assets/icons/search.svg +13 -0
- package/app-template/src/assets/icons/share.svg +10 -0
- package/app-template/src/assets/icons/spinner.svg +6 -0
- package/app-template/src/assets/icons/store-pin.svg +14 -0
- package/app-template/src/assets/icons/track-order.svg +1 -0
- package/app-template/src/assets/icons/twitter.svg +11 -0
- package/app-template/src/assets/icons/user.svg +14 -0
- package/app-template/src/assets/icons/whatsapp.svg +45 -0
- package/app-template/src/components/__tests__/Modal.test.tsx +103 -0
- package/app-template/src/components/__tests__/accordion.test.tsx +65 -0
- package/app-template/src/components/__tests__/badge.test.tsx +20 -0
- package/app-template/src/components/__tests__/button.test.tsx +59 -0
- package/app-template/src/components/__tests__/checkbox.test.tsx +57 -0
- package/app-template/src/components/__tests__/file-input.test.tsx +42 -0
- package/app-template/src/components/__tests__/icon.test.tsx +39 -0
- package/app-template/src/components/__tests__/input.test.tsx +69 -0
- package/app-template/src/components/__tests__/language-select.test.tsx +81 -0
- package/app-template/src/components/__tests__/link.test.tsx +65 -0
- package/app-template/src/components/__tests__/price.test.tsx +72 -0
- package/app-template/src/components/__tests__/radio.test.tsx +52 -0
- package/app-template/src/components/__tests__/select.test.tsx +115 -0
- package/app-template/src/components/__tests__/tab.test.tsx +101 -0
- package/app-template/src/components/accordion.tsx +64 -0
- package/app-template/src/components/badge.tsx +21 -0
- package/app-template/src/components/button.tsx +46 -0
- package/app-template/src/components/canonical-url.tsx +21 -0
- package/app-template/src/components/carousel-core.tsx +42 -0
- package/app-template/src/components/checkbox.tsx +28 -0
- package/app-template/src/components/currency-select.tsx +81 -0
- package/app-template/src/components/custom-loader.tsx +21 -0
- package/app-template/src/components/dynamic-form.tsx +17 -0
- package/app-template/src/components/file-input.tsx +8 -0
- package/app-template/src/components/generate-form-fields.tsx +349 -0
- package/app-template/src/components/icon.tsx +18 -0
- package/app-template/src/components/index.ts +41 -0
- package/app-template/src/components/input.tsx +110 -0
- package/app-template/src/components/language-select.tsx +33 -0
- package/app-template/src/components/link.tsx +53 -0
- package/app-template/src/components/loader-spinner.tsx +23 -0
- package/app-template/src/components/modal.tsx +66 -0
- package/app-template/src/components/pagination.tsx +267 -0
- package/app-template/src/components/password-rules-feedback.tsx +60 -0
- package/app-template/src/components/price.tsx +54 -0
- package/app-template/src/components/pwa-tags.tsx +233 -0
- package/app-template/src/components/radio.tsx +18 -0
- package/app-template/src/components/react-portal.tsx +47 -0
- package/app-template/src/components/select.tsx +70 -0
- package/app-template/src/components/shimmer.tsx +21 -0
- package/app-template/src/components/skeleton-article.tsx +15 -0
- package/app-template/src/components/skeleton-product.tsx +14 -0
- package/app-template/src/components/skeleton-profile.tsx +19 -0
- package/app-template/src/components/skeleton-wrapper.tsx +19 -0
- package/app-template/src/components/skeleton.tsx +37 -0
- package/app-template/src/components/source.tsx +12 -0
- package/app-template/src/components/tab-panel.tsx +10 -0
- package/app-template/src/components/tab.tsx +58 -0
- package/app-template/src/components/tabs.tsx +58 -0
- package/app-template/src/components/types/index.ts +89 -0
- package/app-template/src/hooks/index.ts +1 -0
- package/app-template/src/hooks/use-add-product-to-basket.ts +48 -0
- package/app-template/src/hooks/use-contract.tsx +58 -0
- package/app-template/src/hooks/use-fav-button.tsx +99 -0
- package/app-template/src/instrumentation.ts +1 -0
- package/app-template/src/middleware.ts +33 -0
- package/app-template/src/pages/_error.js +14 -0
- package/app-template/src/pages/api/auth/[...nextauth].ts +3 -0
- package/app-template/src/plugins.js +14 -0
- package/app-template/src/redux/middlewares/category.ts +42 -0
- package/app-template/src/redux/reducers/category.ts +67 -0
- package/app-template/src/redux/store.ts +47 -0
- package/app-template/src/routes/index.ts +46 -0
- package/app-template/src/settings.js +62 -0
- package/app-template/src/theme.js +1 -0
- package/app-template/src/types/index.ts +72 -0
- package/app-template/src/types/next-auth.d.ts +24 -0
- package/app-template/src/types/widgets.ts +115 -0
- package/app-template/src/utils/convert-facet-search-params.ts +15 -0
- package/app-template/src/utils/generate-jsonld.ts +23 -0
- package/app-template/src/utils/gtm.ts +247 -0
- package/app-template/src/utils/index.ts +60 -0
- package/app-template/src/views/account/account-menu.tsx +117 -0
- package/app-template/src/views/account/address-card.tsx +157 -0
- package/app-template/src/views/account/address-form.tsx +374 -0
- package/app-template/src/views/account/back-button.tsx +27 -0
- package/app-template/src/views/account/contact-form.tsx +283 -0
- package/app-template/src/views/account/content-header.tsx +52 -0
- package/app-template/src/views/account/faq/faq-footer.tsx +30 -0
- package/app-template/src/views/account/faq/faq-search.tsx +35 -0
- package/app-template/src/views/account/faq/faq-tabs.tsx +54 -0
- package/app-template/src/views/account/faq/index.ts +3 -0
- package/app-template/src/views/account/favorite-item.tsx +191 -0
- package/app-template/src/views/account/favourite-products/favourite-products-list.tsx +65 -0
- package/app-template/src/views/account/index.ts +4 -0
- package/app-template/src/views/account/order.tsx +89 -0
- package/app-template/src/views/account/orders/order-cancellation-item.tsx +99 -0
- package/app-template/src/views/account/orders/order-detail-header.tsx +39 -0
- package/app-template/src/views/anonymous-tracking/index.tsx +109 -0
- package/app-template/src/views/anonymous-tracking/order-detail/index.tsx +318 -0
- package/app-template/src/views/basket/basket-item.tsx +231 -0
- package/app-template/src/views/basket/index.ts +2 -0
- package/app-template/src/views/basket/summary.tsx +220 -0
- package/app-template/src/views/breadcrumb.tsx +35 -0
- package/app-template/src/views/category/category-active-filters.tsx +98 -0
- package/app-template/src/views/category/category-banner.tsx +34 -0
- package/app-template/src/views/category/category-header.tsx +143 -0
- package/app-template/src/views/category/category-info.tsx +123 -0
- package/app-template/src/views/category/filters/index.tsx +163 -0
- package/app-template/src/views/category/filters/size-filter.tsx +27 -0
- package/app-template/src/views/category/layout.tsx +38 -0
- package/app-template/src/views/checkout/auth.tsx +54 -0
- package/app-template/src/views/checkout/index.tsx +3 -0
- package/app-template/src/views/checkout/layout/footer.tsx +48 -0
- package/app-template/src/views/checkout/layout/header.tsx +38 -0
- package/app-template/src/views/checkout/step-button.tsx +69 -0
- package/app-template/src/views/checkout/step-list.tsx +51 -0
- package/app-template/src/views/checkout/steps/payment/agreements.tsx +42 -0
- package/app-template/src/views/checkout/steps/payment/index.tsx +31 -0
- package/app-template/src/views/checkout/steps/payment/options/credit-card/index.tsx +382 -0
- package/app-template/src/views/checkout/steps/payment/options/credit-card/installments.tsx +100 -0
- package/app-template/src/views/checkout/steps/payment/options/credit-payment.tsx +14 -0
- package/app-template/src/views/checkout/steps/payment/options/funds-transfer.tsx +174 -0
- package/app-template/src/views/checkout/steps/payment/options/loyalty.tsx +19 -0
- package/app-template/src/views/checkout/steps/payment/options/pay-on-delivery.tsx +15 -0
- package/app-template/src/views/checkout/steps/payment/options/redirection.tsx +94 -0
- package/app-template/src/views/checkout/steps/payment/payment-header.tsx +17 -0
- package/app-template/src/views/checkout/steps/payment/payment-option-buttons.tsx +73 -0
- package/app-template/src/views/checkout/steps/shipping/address-box.tsx +244 -0
- package/app-template/src/views/checkout/steps/shipping/addresses.tsx +189 -0
- package/app-template/src/views/checkout/steps/shipping/index.tsx +27 -0
- package/app-template/src/views/checkout/steps/shipping/shipping-options.tsx +72 -0
- package/app-template/src/views/checkout/summary.tsx +181 -0
- package/app-template/src/views/coupon-item/index.tsx +80 -0
- package/app-template/src/views/find-in-store/index.tsx +183 -0
- package/app-template/src/views/footer.tsx +21 -0
- package/app-template/src/views/guest-login/index.tsx +130 -0
- package/app-template/src/views/header/action-menu.tsx +117 -0
- package/app-template/src/views/header/band.tsx +32 -0
- package/app-template/src/views/header/index.tsx +66 -0
- package/app-template/src/views/header/mini-basket.tsx +267 -0
- package/app-template/src/views/header/mobile-hamburger-button.tsx +35 -0
- package/app-template/src/views/header/mobile-menu.tsx +144 -0
- package/app-template/src/views/header/navbar.tsx +186 -0
- package/app-template/src/views/header/pwa-back-button.tsx +60 -0
- package/app-template/src/views/header/search/index.tsx +82 -0
- package/app-template/src/views/header/search/results.tsx +123 -0
- package/app-template/src/views/header/user-menu.tsx +72 -0
- package/app-template/src/views/index.tsx +2 -0
- package/app-template/src/views/installment-options/index.tsx +127 -0
- package/app-template/src/views/login/index.tsx +233 -0
- package/app-template/src/views/otp-login/index.tsx +152 -0
- package/app-template/src/views/page-loader-spinner/index.tsx +9 -0
- package/app-template/src/views/product/accordion-wrapper.tsx +59 -0
- package/app-template/src/views/product/combine-product-card.tsx +82 -0
- package/app-template/src/views/product/index.ts +8 -0
- package/app-template/src/views/product/layout.tsx +40 -0
- package/app-template/src/views/product/misc-buttons.tsx +65 -0
- package/app-template/src/views/product/price-wrapper.tsx +41 -0
- package/app-template/src/views/product/product-group-info.tsx +63 -0
- package/app-template/src/views/product/product-info.tsx +273 -0
- package/app-template/src/views/product/slider.tsx +124 -0
- package/app-template/src/views/product/variant.tsx +104 -0
- package/app-template/src/views/product-item/index.tsx +96 -0
- package/app-template/src/views/product-pointer-banner-item.tsx +243 -0
- package/app-template/src/views/register/index.tsx +417 -0
- package/app-template/src/views/root-modal.tsx +21 -0
- package/app-template/src/views/sales-contract-modal/index.tsx +288 -0
- package/app-template/src/views/share/index.tsx +71 -0
- package/app-template/src/views/widgets/home-hero-slider-content.tsx +54 -0
- package/app-template/src/views/widgets/recommendation-content.tsx +86 -0
- package/app-template/src/widgets/footer-copyright.tsx +25 -0
- package/app-template/src/widgets/footer-info.tsx +78 -0
- package/app-template/src/widgets/footer-menu.tsx +258 -0
- package/app-template/src/widgets/footer-social.tsx +53 -0
- package/app-template/src/widgets/footer-subscription/footer-subscription-form.tsx +110 -0
- package/app-template/src/widgets/footer-subscription/index.tsx +30 -0
- package/app-template/src/widgets/header-band-text.tsx +21 -0
- package/app-template/src/widgets/home-discovery.tsx +191 -0
- package/app-template/src/widgets/home-hero-slider.tsx +36 -0
- package/app-template/src/widgets/home-product-recommendation.tsx +18 -0
- package/app-template/src/widgets/home-single-banner.tsx +87 -0
- package/app-template/src/widgets/home-stories-eng.tsx +112 -0
- package/app-template/src/widgets/index.ts +25 -0
- package/app-template/src/widgets/product-pointer-banners.tsx +35 -0
- package/app-template/src/widgets/special-page-banner.tsx +49 -0
- package/app-template/src/widgets/special-page-carousel.tsx +68 -0
- package/app-template/src/widgets/widget-order.tsx +1 -0
- package/app-template/tailwind.config.js +170 -0
- package/app-template/tsconfig.json +44 -0
- package/app-template/tsconfig.test.json +6 -0
- package/app-template/yarn.lock +11278 -0
- package/commands/create.ts +49 -118
- package/dist/commands/create.js +32 -68
- package/package.json +1 -1
- package/tsconfig.json +9 -8
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Widget
|
|
3
|
+
sidebar_label: Widget
|
|
4
|
+
slug: widget
|
|
5
|
+
custom_edit_url: null
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## getWidgetData
|
|
9
|
+
|
|
10
|
+
This function is used to fetch data for widgets created in Omnitron.
|
|
11
|
+
|
|
12
|
+
The **getWidgetData** function is imported from `'@akinon/next/data/server'`.
|
|
13
|
+
|
|
14
|
+
```javascript
|
|
15
|
+
import { getWidgetData } from '@akinon/next/data/server';
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
The widget data is fetched by defining this function as follow:
|
|
19
|
+
|
|
20
|
+
```javascript
|
|
21
|
+
const data = await getWidgetData({slug: 'gender-widget-order'});
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
- `slug`: The slug of the widget to be fetched needs to be provided as a parameter. This parameter is mandatory and should be of type String.
|
|
25
|
+
|
|
26
|
+
Data returned from the function:
|
|
27
|
+
|
|
28
|
+
```json
|
|
29
|
+
{
|
|
30
|
+
"attributes": {
|
|
31
|
+
"widget_order": [
|
|
32
|
+
{
|
|
33
|
+
"value": {
|
|
34
|
+
"item_slug": "home-stories-men"
|
|
35
|
+
},
|
|
36
|
+
"kwargs": {
|
|
37
|
+
"value": {},
|
|
38
|
+
"data_type": "nested"
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"value": {
|
|
43
|
+
"item_slug": "home-hero-slider-men"
|
|
44
|
+
},
|
|
45
|
+
"kwargs": {
|
|
46
|
+
"value": {},
|
|
47
|
+
"data_type": "nested"
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"value": {
|
|
52
|
+
"item_slug": "countdown-banner-men"
|
|
53
|
+
},
|
|
54
|
+
"kwargs": {
|
|
55
|
+
"value": {},
|
|
56
|
+
"data_type": "nested"
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"value": {
|
|
61
|
+
"item_slug": "home-single-banner-men"
|
|
62
|
+
},
|
|
63
|
+
"kwargs": {
|
|
64
|
+
"value": {},
|
|
65
|
+
"data_type": "nested"
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"value": {
|
|
70
|
+
"item_slug": "home-categories-men"
|
|
71
|
+
},
|
|
72
|
+
"kwargs": {
|
|
73
|
+
"value": {},
|
|
74
|
+
"data_type": "nested"
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"value": {
|
|
79
|
+
"item_slug": "multiple-banner-1-men"
|
|
80
|
+
},
|
|
81
|
+
"kwargs": {
|
|
82
|
+
"value": {},
|
|
83
|
+
"data_type": "nested"
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"value": {
|
|
88
|
+
"item_slug": "new-arrivals-recommendation-men"
|
|
89
|
+
},
|
|
90
|
+
"kwargs": {
|
|
91
|
+
"value": {},
|
|
92
|
+
"data_type": "nested"
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"value": {
|
|
97
|
+
"item_slug": "multiple-banner-2-men"
|
|
98
|
+
},
|
|
99
|
+
"kwargs": {
|
|
100
|
+
"value": {},
|
|
101
|
+
"data_type": "nested"
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"value": {
|
|
106
|
+
"item_slug": "home-quad-category-men"
|
|
107
|
+
},
|
|
108
|
+
"kwargs": {
|
|
109
|
+
"value": {},
|
|
110
|
+
"data_type": "nested"
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"value": {
|
|
115
|
+
"item_slug": "multiple-banner-3-men"
|
|
116
|
+
},
|
|
117
|
+
"kwargs": {
|
|
118
|
+
"value": {},
|
|
119
|
+
"data_type": "nested"
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"value": {
|
|
124
|
+
"item_slug": "price-selector-men"
|
|
125
|
+
},
|
|
126
|
+
"kwargs": {
|
|
127
|
+
"value": {},
|
|
128
|
+
"data_type": "nested"
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
"value": {
|
|
133
|
+
"item_slug": "best-sellers-recommendation-men"
|
|
134
|
+
},
|
|
135
|
+
"kwargs": {
|
|
136
|
+
"value": {},
|
|
137
|
+
"data_type": "nested"
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
"value": {
|
|
142
|
+
"item_slug": "home-two-banner-men"
|
|
143
|
+
},
|
|
144
|
+
"kwargs": {
|
|
145
|
+
"value": {},
|
|
146
|
+
"data_type": "nested"
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
"value": {
|
|
151
|
+
"item_slug": "multiple-banner-4-men"
|
|
152
|
+
},
|
|
153
|
+
"kwargs": {
|
|
154
|
+
"value": {},
|
|
155
|
+
"data_type": "nested"
|
|
156
|
+
}
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
"value": {
|
|
160
|
+
"item_slug": "home-size-selector-men"
|
|
161
|
+
},
|
|
162
|
+
"kwargs": {
|
|
163
|
+
"value": {},
|
|
164
|
+
"data_type": "nested"
|
|
165
|
+
}
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
"value": {
|
|
169
|
+
"item_slug": "multiple-banner-5-men"
|
|
170
|
+
},
|
|
171
|
+
"kwargs": {
|
|
172
|
+
"value": {},
|
|
173
|
+
"data_type": "nested"
|
|
174
|
+
}
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
"value": {
|
|
178
|
+
"item_slug": "home-quad-category-3-men"
|
|
179
|
+
},
|
|
180
|
+
"kwargs": {
|
|
181
|
+
"value": {},
|
|
182
|
+
"data_type": "nested"
|
|
183
|
+
}
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
"value": {
|
|
187
|
+
"item_slug": "home-quad-category-2-men"
|
|
188
|
+
},
|
|
189
|
+
"kwargs": {
|
|
190
|
+
"value": {},
|
|
191
|
+
"data_type": "nested"
|
|
192
|
+
}
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
"value": {
|
|
196
|
+
"item_slug": "home-quad-category-4-men"
|
|
197
|
+
},
|
|
198
|
+
"kwargs": {
|
|
199
|
+
"value": {},
|
|
200
|
+
"data_type": "nested"
|
|
201
|
+
}
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
"value": {
|
|
205
|
+
"item_slug": "category-seo-recommendation-men"
|
|
206
|
+
},
|
|
207
|
+
"kwargs": {
|
|
208
|
+
"value": {},
|
|
209
|
+
"data_type": "nested"
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
]
|
|
213
|
+
},
|
|
214
|
+
"name": "Men Widget Order",
|
|
215
|
+
"template": "none",
|
|
216
|
+
"slug": "men-widget-order"
|
|
217
|
+
}
|
|
218
|
+
```
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Delete Account
|
|
2
|
+
|
|
3
|
+
To deactivate a user's account, a request is sent to the `useAnonymizeMutation` service. This service provides the user with the option to delete their account.
|
|
4
|
+
|
|
5
|
+
The **useAnonymizeMutation** function is imported from `@akinon/next/data/client/account` as below:
|
|
6
|
+
|
|
7
|
+
```js
|
|
8
|
+
import { useAnonymizeMutation } from '@akinon/next/data/client/account';
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
To use the function, create a variable, call the **useAnonymizeMutation** function, and execute the request. The example below demonstrates when the **Delete My Account** button is clicked, the **deleteUser** function is invoked.
|
|
12
|
+
|
|
13
|
+
```js
|
|
14
|
+
const [ deleteUser, { isLoading: isDeleting, error: responseError, isError, isSuccess } ] = useAnonymizeMutation();
|
|
15
|
+
|
|
16
|
+
return (
|
|
17
|
+
<Button onClick={() => deleteUser()}>
|
|
18
|
+
{isDeleting ? (
|
|
19
|
+
<LoaderSpinner />
|
|
20
|
+
) : (
|
|
21
|
+
Delete My Account
|
|
22
|
+
)}
|
|
23
|
+
</Button>
|
|
24
|
+
)
|
|
25
|
+
```
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
|
|
2
|
+
## Deployment
|
|
3
|
+
|
|
4
|
+
### Required Environment Variables
|
|
5
|
+
|
|
6
|
+
Before initiating your application's deployment to ACC, it is important to set up the necessary environment variables. Please ensure you have added the following variables to your application before your first deployment:
|
|
7
|
+
|
|
8
|
+
- **NEXT_PUBLIC_URL**: The website's URL, accessible from the ACC dashboard.
|
|
9
|
+
- **NEXTAUTH_URL**: The website's URL, identical to NEXT_PUBLIC_URL.
|
|
10
|
+
- **NEXTAUTH_SECRET**: A secret string for session encryption, generated from any online tool.
|
|
11
|
+
- **CACHE_SECRET**: A secret string for encrypting Redis cache requests. Generate this using any online tool; without it, Redis cache may not function properly.
|
|
12
|
+
|
|
13
|
+
### Add Remote Repository
|
|
14
|
+
|
|
15
|
+
For deploying your application to ACC, the addition of a remote repository is required. Obtain the URL of the remote repository from the ACC dashboard.
|
|
16
|
+
|
|
17
|
+
Run the following command to add the remote repository:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
git remote add acc <acc-repository-url>
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### Create and Push a Tag
|
|
24
|
+
|
|
25
|
+
For deploying your application to ACC, create a tag within your repository. Ensure all changes are committed before proceeding.
|
|
26
|
+
|
|
27
|
+
Run the following command to create a tag:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
git tag <tag-name>
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Then, push the tag to the remote repository:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
git push acc <tag-name>
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Build Your Application
|
|
40
|
+
|
|
41
|
+
Navigate to My Applications > {Your Application} > Builds. Click the **Build** button. Enter the tag name created in the previous step and click **Build** button.
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
### Deploy Your Application
|
|
45
|
+
|
|
46
|
+
Upon successful completion of the build, initiate the deployment by providing the same tag name and clicking the **Deploy** button.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
## Dynamic Route
|
|
2
|
+
|
|
3
|
+
**Some Pages Where Dynamic Route is Used**
|
|
4
|
+
|
|
5
|
+
- `/users/email-set-primary/${TOKEN-ID}`
|
|
6
|
+
- `/users/registration/account-confirm-email/${TOKEN-ID}`
|
|
7
|
+
|
|
8
|
+
The page **/users/email-set-primary/${TOKEN-ID}** is the page to which a user is directed when they change their email, using the token sent to the new email address. Upon signing in this page, the token value is obtained via params, and the `useChangeEmailVerificationQuery(id.join('/'))` function makes the API call. The user's new email address is updated through the API call.
|
|
9
|
+
|
|
10
|
+
The page **/users/registration/account-confirm-email/${TOKEN-ID}** is the page to which a user is directed when they become a new member, using the token sent to their email address. Upon signing in this page, the token value is obtained via params, and the `useConfirmEmailVerificationQuery(id.join('/'))` function makes the API call. The verification of the user's email address is completed through the API call.
|
|
11
|
+
|
|
12
|
+
**How to Use?**
|
|
13
|
+
|
|
14
|
+
1. Create a folder in the main path of your page structure:
|
|
15
|
+
|
|
16
|
+
`users > registration > acount-confirm-email > [[...id]] > page.tsx`
|
|
17
|
+
|
|
18
|
+
2. Then, define an enum in `src > routes > index.ts`:
|
|
19
|
+
|
|
20
|
+
```typescript
|
|
21
|
+
enum AUTH_ROUTES {
|
|
22
|
+
EMAIL_SET_PRIMARY = '/users/email-set-primary/.+',
|
|
23
|
+
CONFIRM_EMAIL = '/users/registration/account-confirm-email/.+'
|
|
24
|
+
}
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
3. To export the defined **AUTH_ROUTES**, assign the enum to the `ROUTES` variable at the bottom of the page:
|
|
28
|
+
|
|
29
|
+
```typescript
|
|
30
|
+
export const ROUTES = {
|
|
31
|
+
...AUTH_ROUTES
|
|
32
|
+
};
|
|
33
|
+
```
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Generate Icons
|
|
3
|
+
sidebar_label: Icons
|
|
4
|
+
slug: icons
|
|
5
|
+
custom_edit_url: null
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
SVG icons to be used in the project are stored under the `src/assets/icons` folder.
|
|
9
|
+
|
|
10
|
+
```sh
|
|
11
|
+
There are two different methods that can be used for icon usage.
|
|
12
|
+
|
|
13
|
+
1. Icons can be used by generating an SVG Sprite.
|
|
14
|
+
|
|
15
|
+
2. Icon fonts can be generated and used by using the VS Code extension developed by the Project Zero Team.
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
### Steps for Generating an Icon Font
|
|
19
|
+
|
|
20
|
+
1. Obtain and install the VS Code extension.
|
|
21
|
+
|
|
22
|
+
2. Add the SVG icons you want to convert to an icon font under the `src/assets/icons` folder.
|
|
23
|
+
|
|
24
|
+
3. Inside VS Code, open the command palette screen by using the shortcut `CMD + SHIFT + P` (or `CTRL + SHIFT + P`).
|
|
25
|
+
|
|
26
|
+
4. In the command palette screen, run the `Generate Icons` command.
|
|
27
|
+
|
|
28
|
+
5. After running the command, you will find the relevant files starting with `pz-icon` generated under the `src/assets/fonts` folder.
|
|
29
|
+
|
|
30
|
+
6. Icon can now be used along with its name within the `<Icon>` component to generate the icon font.
|
|
31
|
+
|
|
32
|
+
## Usage of the Icon Component
|
|
33
|
+
|
|
34
|
+
Import the Icon component into the file where you want to use it.
|
|
35
|
+
|
|
36
|
+
```sh
|
|
37
|
+
import { Icon } from '../components';
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Call the imported component within your page.
|
|
41
|
+
|
|
42
|
+
```sh
|
|
43
|
+
<Icon name="akinon" size={34} className="text-red" />
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Props that the Icon component accepts:
|
|
47
|
+
|
|
48
|
+
- **`name` (string):** The name of the icon you want to use. This prop is mandatory.
|
|
49
|
+
|
|
50
|
+
- **`size` (number):** Used to specify the size of the icon. The default value is 18px.
|
|
51
|
+
|
|
52
|
+
- **`className` (string):** Used for additional styling for the icon (e.g., color).
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Localization
|
|
3
|
+
sidebar_label: Localization
|
|
4
|
+
slug: localization
|
|
5
|
+
custom_edit_url: null
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
Project Zero Next supports multiple languages and currencies, and all the necessary settings for language and currency management can be found within the settings.js file.
|
|
9
|
+
|
|
10
|
+
## Locales
|
|
11
|
+
|
|
12
|
+
### Adding a New Locale
|
|
13
|
+
|
|
14
|
+
To add a new locale to the project, follow these steps:
|
|
15
|
+
|
|
16
|
+
1. Open the settings.js file.
|
|
17
|
+
2. Locate the **localization** section.
|
|
18
|
+
3. Inside the **locales** array, add a new object with the following properties:
|
|
19
|
+
|
|
20
|
+
| Property | Description |
|
|
21
|
+
| --- | --- |
|
|
22
|
+
| label | A label that can be displayed on any page of the website. |
|
|
23
|
+
| value | The lowercase locale value in ISO 639-1 format or including the country code in ISO 3166-1 alpha-2 format. |
|
|
24
|
+
| localePath | Name of the locale's JSON translation file. For example, if the value is "en," the file should be placed in the public/locales/en directory. |
|
|
25
|
+
| apiValue | The value of the locale defined in Commerce. |
|
|
26
|
+
| rtl | A boolean value that specifies whether it is right-to-left, like Arabic. |
|
|
27
|
+
|
|
28
|
+
Here's an example of adding a new locale:
|
|
29
|
+
|
|
30
|
+
```javascript
|
|
31
|
+
localization: {
|
|
32
|
+
locales: [
|
|
33
|
+
{
|
|
34
|
+
label: 'EN',
|
|
35
|
+
value: 'en',
|
|
36
|
+
localePath: 'en',
|
|
37
|
+
apiValue: 'en-us',
|
|
38
|
+
rtl: false,
|
|
39
|
+
},
|
|
40
|
+
],
|
|
41
|
+
}
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Default Locale
|
|
45
|
+
|
|
46
|
+
The default locale for the project can be specified by using the **defaultLocaleValue** in the settings.js file. This value should match the "value" of one of the defined locales.
|
|
47
|
+
|
|
48
|
+
### Setting a Locale
|
|
49
|
+
|
|
50
|
+
To set a locale in the project, the **setLocale** method available in the useLocalization hook can be used. This method will automatically change the URL to reflect the selected locale.
|
|
51
|
+
|
|
52
|
+
Example of using **setLocale**:
|
|
53
|
+
|
|
54
|
+
```javascript
|
|
55
|
+
const { setLocale } = useLocalization();
|
|
56
|
+
|
|
57
|
+
setLocale('en-us');
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Disabling Redirection to Default Locale
|
|
61
|
+
|
|
62
|
+
In some cases, like displaying a landing page on example.com/ while using the ShowAllLocales strategy, users are automatically redirected to URLs containing the default locale (e.g., example.com/en). To disable this redirection, set **redirectToDefaultLocale** to false in the settings.js file:
|
|
63
|
+
|
|
64
|
+
```javascript
|
|
65
|
+
localization: {
|
|
66
|
+
redirectToDefaultLocale: false,
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Currencies
|
|
71
|
+
|
|
72
|
+
### Adding a New Currency
|
|
73
|
+
|
|
74
|
+
To add a new currency to the project, follow these steps:
|
|
75
|
+
|
|
76
|
+
1. Open the settings.js file.
|
|
77
|
+
2. Locate the **currencies** section.
|
|
78
|
+
3. Inside the **currencies** array, add a new object with the following properties:
|
|
79
|
+
- **label**: The label for the currency (e.g., 'USD').
|
|
80
|
+
- **code**: The code for the currency (e.g., 'usd').
|
|
81
|
+
|
|
82
|
+
Here's an example of adding a new currency:
|
|
83
|
+
|
|
84
|
+
```javascript
|
|
85
|
+
currencies: [
|
|
86
|
+
{
|
|
87
|
+
label: 'USD',
|
|
88
|
+
code: 'usd',
|
|
89
|
+
},
|
|
90
|
+
]
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### Default Currency
|
|
94
|
+
|
|
95
|
+
The default currency in the project can be specified by using the **defaultCurrencyCode** in the settings.js file. This code must match the "code" of one of the defined currencies.
|
|
96
|
+
|
|
97
|
+
### Determining Active Currency
|
|
98
|
+
|
|
99
|
+
The **getActiveCurrencyCode** function's default behavior is to retrieve the active currency code from a cookie named `pz-currency`. Users can customize this function to obtain the currency code from different sources, such as headers or the URL. If the return value doesn't match any currency code in the `currencies` array, the default currency code will be used.
|
|
100
|
+
|
|
101
|
+
Here's an example:
|
|
102
|
+
|
|
103
|
+
```javascript
|
|
104
|
+
getActiveCurrencyCode: ({ req, locale, defaultCurrencyCode }) => {
|
|
105
|
+
const [, countryCode] = locale.split('-');
|
|
106
|
+
|
|
107
|
+
if (countryCode === 'ae') {
|
|
108
|
+
return 'aed';
|
|
109
|
+
} else if (countryCode === 'qa') {
|
|
110
|
+
return 'qar';
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
return defaultCurrencyCode;
|
|
114
|
+
}
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### Setting a Currency
|
|
118
|
+
|
|
119
|
+
To set a currency in the project, the **setCurrency** method available in the useLocalization hook can be used.
|
|
120
|
+
|
|
121
|
+
Important: If the currency is linked to the locale by using `getActiveCurrencyCode` function in the settings, you need to use `setLocale` instead of this.
|
|
122
|
+
|
|
123
|
+
Example of using **setCurrency**:
|
|
124
|
+
|
|
125
|
+
```javascript
|
|
126
|
+
const { setCurrency } = useLocalization();
|
|
127
|
+
|
|
128
|
+
setCurrency('usd');
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
Important: Basket will be cleared when the currency is changed. Both of `setCurrency` and `setLocale` methods will clear the basket automatically.
|
|
132
|
+
|
|
133
|
+
## URL Strategy
|
|
134
|
+
|
|
135
|
+
Project Zero Next supports multiple URL structures to cater to different requirements. Users can set the URL strategy using the **localeUrlStrategy** value in settings.js.
|
|
136
|
+
|
|
137
|
+
Example of setting the URL strategy:
|
|
138
|
+
|
|
139
|
+
```javascript
|
|
140
|
+
localization: {
|
|
141
|
+
localeUrlStrategy: LocaleUrlStrategy.ShowAllLocales,
|
|
142
|
+
}
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
The available values for **localeUrlStrategy** are:
|
|
146
|
+
|
|
147
|
+
- LocaleUrlStrategy.HideDefaultLocale
|
|
148
|
+
- LocaleUrlStrategy.HideAllLocales
|
|
149
|
+
- LocaleUrlStrategy.ShowAllLocales
|
|
150
|
+
|
|
151
|
+
LocaleUrlStrategy.HideDefaultLocale:
|
|
152
|
+
|
|
153
|
+
- For English (en): "/women"
|
|
154
|
+
- For Turkish (tr): "/tr/women"
|
|
155
|
+
|
|
156
|
+
LocaleUrlStrategy.ShowAllLocales:
|
|
157
|
+
|
|
158
|
+
- For English (en): "/en/women"
|
|
159
|
+
- For Turkish (tr): "/tr/women"
|
|
160
|
+
|
|
161
|
+
LocaleUrlStrategy.HideAllLocales:
|
|
162
|
+
|
|
163
|
+
- For English (en): "/women"
|
|
164
|
+
- For Turkish (tr): "/women"
|
|
165
|
+
|
|
166
|
+
> **Note:** The "HideAllLocales" option is not recommended for SEO purposes.
|
|
167
|
+
|
|
168
|
+
## Translations
|
|
169
|
+
|
|
170
|
+
Translations can be managed by adding key-value pairs to JSON files located under the public/locales directory. For example, if the English (en) locale is used, translation files can be stored in public/locales/en/account.json.
|
|
171
|
+
|
|
172
|
+
## Localization in Components
|
|
173
|
+
|
|
174
|
+
### Client Components
|
|
175
|
+
|
|
176
|
+
The **useLocalization** hook provides all the necessary properties for localization in client components. To make use of translations in the client components, use the "**t**" function as shown in the example below:
|
|
177
|
+
|
|
178
|
+
```javascript
|
|
179
|
+
import { useLocalization } from '@akinon/next/hooks';
|
|
180
|
+
|
|
181
|
+
const {
|
|
182
|
+
t,
|
|
183
|
+
currencies,
|
|
184
|
+
currency,
|
|
185
|
+
defaultCurrencyCode,
|
|
186
|
+
locales,
|
|
187
|
+
locale,
|
|
188
|
+
defaultLocaleValue,
|
|
189
|
+
localeUrlStrategy,
|
|
190
|
+
setLocale,
|
|
191
|
+
} = useLocalization();
|
|
192
|
+
|
|
193
|
+
const translatedText = t('account.change_email.header.title');
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
### Server Components
|
|
197
|
+
|
|
198
|
+
For server components, the "**t**" function can be imported from the following path to access translations:
|
|
199
|
+
|
|
200
|
+
```javascript
|
|
201
|
+
import { t } from '@akinon/next/utils/server-translation';
|
|
202
|
+
|
|
203
|
+
const translatedText = t('account.change_email.header.title');
|
|
204
|
+
```
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Log Documentation
|
|
2
|
+
|
|
3
|
+
## Import logger interface
|
|
4
|
+
|
|
5
|
+
```typescript
|
|
6
|
+
import logger from '@akinon/next/utils/log';
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
## Available Log Levels
|
|
10
|
+
|
|
11
|
+
- trace
|
|
12
|
+
- debug
|
|
13
|
+
- info
|
|
14
|
+
- warn
|
|
15
|
+
- error
|
|
16
|
+
- fatal
|
|
17
|
+
|
|
18
|
+
## Set Environment Variables for Debug Levels in Console
|
|
19
|
+
|
|
20
|
+
#### For development mode `yarn dev`
|
|
21
|
+
``LOG_LEVEL_DEV=trace``
|
|
22
|
+
|
|
23
|
+
#### For production mode `yarn start`
|
|
24
|
+
``LOG_LEVEL=error``
|
|
25
|
+
|
|
26
|
+
## Function Signature
|
|
27
|
+
|
|
28
|
+
```typescript
|
|
29
|
+
debug(message: string, payload: any): void;
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Example usage
|
|
33
|
+
|
|
34
|
+
```typescript
|
|
35
|
+
import logger from '@akinon/next/utils/log';
|
|
36
|
+
|
|
37
|
+
const payload = {
|
|
38
|
+
id: 1,
|
|
39
|
+
username: 'akinon'
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
logger.debug('Logged user', payload);
|
|
43
|
+
```
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
**Important note: Setting levels lower than the "info" level (for example, debug and trace) in the production environment may cause significant performance problems. Please do not use levels such as debug and trace for a long time.**
|
|
47
|
+
|
|
48
|
+
**Using a logger in client-side codes (for example, in client components) writes the log to the browser's console. Please make sure you are not logging sensitive content on the client-side.**
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Plugins
|
|
3
|
+
sidebar_label: Plugins
|
|
4
|
+
slug: plugins
|
|
5
|
+
custom_edit_url: null
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
To access and manage plugins for your Project Zero CLI, run the following command:
|
|
9
|
+
|
|
10
|
+
```css
|
|
11
|
+
npx projectzero --plugins
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
The plugins selected from this list will be added to the project and ready for use. The plugins can be removed from the project by unchecking it from the same list.
|
|
15
|
+
|
|
16
|
+
### Plugin List
|
|
17
|
+
|
|
18
|
+
1. Masterpass
|
|
19
|
+
2. Basket Gift Pack
|
|
20
|
+
3. Checkout Gift Pack
|
|
21
|
+
4. Checkout Providers
|
|
22
|
+
5. OTP
|
|
23
|
+
6. Redirection Payment
|
|
24
|
+
7. Click & Collect
|
|
25
|
+
|
|
26
|
+
## Installation
|
|
27
|
+
|
|
28
|
+
1. To install plugins, run the following command in the console:
|
|
29
|
+
|
|
30
|
+
```css
|
|
31
|
+
npx projectzero --plugins
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
2. Select the plugins desire to install from the list provided.
|
|
35
|
+
|
|
36
|
+
### Masterpass
|
|
37
|
+
|
|
38
|
+
The Masterpass plugin enables users to make payments with their Masterpass-registered cards on the payment page. With this plugin, operations such as listing Masterpass-registered cards, adding new cards, and removing cards can be performed.
|
|
39
|
+
|
|
40
|
+
[Click here for details](https://bitbucket.org/akinonteam/pz-masterpass/src/main/)
|
|
41
|
+
|
|
42
|
+
### Basket Gift Pack
|
|
43
|
+
|
|
44
|
+
This plugin allows for the addition of gift pack and gift note or just a gift note for products on the basket page.
|
|
45
|
+
|
|
46
|
+
[Click here for details](https://bitbucket.org/akinonteam/pz-basket-gift-pack/src/main/)
|
|
47
|
+
|
|
48
|
+
### Checkout Gift Pack
|
|
49
|
+
|
|
50
|
+
Used to enable the gift pack option for products on the payment page.
|
|
51
|
+
|
|
52
|
+
[Click here for details](https://bitbucket.org/akinonteam/pz-checkout-gift-pack/src/main/)
|
|
53
|
+
|
|
54
|
+
### Checkout Providers
|
|
55
|
+
|
|
56
|
+
This plugin is used to add payment methods to the checkout process.
|
|
57
|
+
|
|
58
|
+
[Click here for details](https://bitbucket.org/akinonteam/pz_checkout_providers/src/master/)
|
|
59
|
+
|
|
60
|
+
### OTP
|
|
61
|
+
|
|
62
|
+
This application provides SMS verification (OTP) support for desired actions such as registration and updating profile information.
|
|
63
|
+
|
|
64
|
+
[Click here for details](https://bitbucket.org/akinonteam/pz_otp/src/master/)
|
|
65
|
+
|
|
66
|
+
### Redirection Payment
|
|
67
|
+
|
|
68
|
+
Used to enable any payment option with a redirection type on the payment page.
|
|
69
|
+
|
|
70
|
+
[Click here for details](https://bitbucket.org/akinonteam/pz-redirection-payment/src/main/)
|
|
71
|
+
|
|
72
|
+
### Click & Collect
|
|
73
|
+
|
|
74
|
+
This plugin enables the "Click & Collect" in-store pickup option.
|
|
75
|
+
|
|
76
|
+
[Click here for details](https://bitbucket.org/akinonteam/pz-click-collect/src/main/)
|