diff options
| author | Rafi Zadanly <zadanlyr@gmail.com> | 2024-01-13 10:35:22 +0700 |
|---|---|---|
| committer | Rafi Zadanly <zadanlyr@gmail.com> | 2024-01-13 10:35:22 +0700 |
| commit | f62b2345f463695ef0f8f79830cd76b6e0332821 (patch) | |
| tree | c06ff12a8312e3a02b0203f588db0f4da044c911 /src-migrate/common | |
| parent | ee0b5893ac039ab05fe8247647364a923d707da3 (diff) | |
Refactor src migrate folder
Diffstat (limited to 'src-migrate/common')
63 files changed, 0 insertions, 1472 deletions
diff --git a/src-migrate/common/components/elements/Modal.tsx b/src-migrate/common/components/elements/Modal.tsx deleted file mode 100644 index c9c621e0..00000000 --- a/src-migrate/common/components/elements/Modal.tsx +++ /dev/null @@ -1,90 +0,0 @@ -import { XMarkIcon } from "@heroicons/react/24/outline"; -import { AnimatePresence, motion } from "framer-motion" -import { useRouter } from "next/router"; -import { useEffect, useState } from "react"; -import ReactDOM from "react-dom"; -import { useWindowSize } from "usehooks-ts"; -import clsxm from "~/common/libs/clsxm"; - - -type Props = { - children: React.ReactNode - active: boolean - title?: string - close?: () => void, - className?: string, - mode?: "mobile" | "desktop" -} - -const Modal = ({ - children, - active = false, - title, - close, - className, - mode -}: Props) => { - const router = useRouter() - const { width } = useWindowSize() - const [rendered, setRendered] = useState<boolean>(false) - - mode = mode || width >= 768 ? "desktop" : "mobile" - - useEffect(() => { - setRendered(true) - }, []) - - const modalClassNames = clsxm( - "fixed bg-white max-h-[80vh] overflow-auto p-4 pt-0 z-[60] border-gray_r-6", - { - "left-1/2 -translate-x-1/2 translate-y-1/2 bottom-1/2 w-11/12 md:w-[500px] border rounded-xl": mode === 'desktop', - "left-0 w-full border-t bottom-0 rounded-t-xl": mode === 'mobile' - }, - className - ) - - const variant = { - initial: { bottom: mode === 'desktop' ? '45%' : '-100%', opacity: 0 }, - animate: { bottom: mode === 'desktop' ? '50%' : 0, opacity: 1 }, - exit: { bottom: mode === 'desktop' ? '55%' : '-100%', opacity: 0 }, - transition: { ease: 'linear', duration: 0.25 } - } - - return rendered && ReactDOM.createPortal( - <AnimatePresence key={router.asPath}> - {active && ( - <motion.div - className="overlay" - initial={{ opacity: 0 }} - animate={{ opacity: 1 }} - exit={{ opacity: 0 }} - onClick={close} - /> - )} - - {active && ( - <motion.div - {...variant} - className={modalClassNames} - > - <div className='flex justify-between py-5 sticky top-0 '> - <div className='font-semibold text-h-sm md:text-title-sm'> - {title} - </div> - {close && ( - <button className="rounded-full h-10 w-10 flex justify-center items-center bg-white" type='button' onClick={close}> - <XMarkIcon className='w-5 h-5 ' /> - </button> - )} - </div> - - {children} - </motion.div> - )} - - </AnimatePresence>, - document.querySelector('body')! - ) -} - -export default Modal
\ No newline at end of file diff --git a/src-migrate/common/components/elements/ReCaptcha.tsx b/src-migrate/common/components/elements/ReCaptcha.tsx deleted file mode 100644 index 1bc31d90..00000000 --- a/src-migrate/common/components/elements/ReCaptcha.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import ReCAPTCHA, { ReCAPTCHAProps } from "react-google-recaptcha" - -const GOOGLE_RECAPTCHA_KEY = process.env.NEXT_PUBLIC_RECAPTCHA_GOOGLE || '' - -type Props = Omit<ReCAPTCHAProps, 'sitekey'> & { - sitekey?: string; -} - -const ReCaptcha = (props: Props) => { - const { sitekey, ...rest } = props - - return ( - <ReCAPTCHA sitekey={sitekey || GOOGLE_RECAPTCHA_KEY} {...rest} /> - ) -} - -export default ReCaptcha
\ No newline at end of file diff --git a/src-migrate/common/components/elements/Seo.tsx b/src-migrate/common/components/elements/Seo.tsx deleted file mode 100644 index 2245663a..00000000 --- a/src-migrate/common/components/elements/Seo.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import { useRouter } from 'next/router' -import React from 'react' -import { NextSeo } from "next-seo" -import { MetaTag, NextSeoProps } from 'next-seo/lib/types'; - -const Seo = (props: NextSeoProps) => { - const router = useRouter() - - const additionalMetaTags: MetaTag[] = [ - { - property: 'fb:app_id', - content: '270830718811' - }, - { - property: 'fb:page_id', - content: '101759953569' - }, - ] - - if (!!props.additionalMetaTags) additionalMetaTags.push(...props.additionalMetaTags) - - return ( - <NextSeo - defaultTitle='Indoteknik.com: B2B Industrial Supply & Solution' - canonical={process.env.NEXT_PUBLIC_SELF_HOST + router.asPath} - description={props.title} - {...props} - openGraph={{ siteName: 'Indoteknik.com', ...props.openGraph }} - additionalMetaTags={additionalMetaTags} - /> - ) -} - -export default Seo
\ No newline at end of file diff --git a/src-migrate/common/components/skeleton/PageContentSkeleton.tsx b/src-migrate/common/components/skeleton/PageContentSkeleton.tsx deleted file mode 100644 index bf85cff1..00000000 --- a/src-migrate/common/components/skeleton/PageContentSkeleton.tsx +++ /dev/null @@ -1,19 +0,0 @@ -const PageContentSkeleton = () => { - return ( - <div className="animate-pulse grid gap-y-4"> - <div className="w-full h-10 bg-gray-300 rounded" /> - <div className="h-2" /> - <div className="w-full h-4 bg-gray-300 rounded" /> - <div className="w-full h-4 bg-gray-300 rounded" /> - <div className="w-full h-4 bg-gray-300 rounded" /> - <div className="w-8/12 h-4 bg-gray-300 rounded" /> - <div className="h-2" /> - <div className="w-full h-4 bg-gray-300 rounded" /> - <div className="w-full h-4 bg-gray-300 rounded" /> - <div className="w-full h-4 bg-gray-300 rounded" /> - <div className="w-1/2 h-4 bg-gray-300 rounded" /> - </div> - ) -} - -export default PageContentSkeleton
\ No newline at end of file diff --git a/src-migrate/common/constants/menu.ts b/src-migrate/common/constants/menu.ts deleted file mode 100644 index 853da507..00000000 --- a/src-migrate/common/constants/menu.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { SecondaryNavItemProps } from '../types/nav' - -export const SECONDARY_MENU_ITEMS: SecondaryNavItemProps[] = [ - { - label: 'Semua Brand', - href: '/shop/brands' - }, - { - label: 'Ready Stock', - href: '/shop/search?orderBy=stock' - }, - { - label: 'Blog Indoteknik', - href: 'https://blog.indoteknik.com/' - }, - { - label: 'Indoteknik TV', - href: '/video' - } -] diff --git a/src-migrate/common/libs/auth.ts b/src-migrate/common/libs/auth.ts deleted file mode 100644 index fb4e836a..00000000 --- a/src-migrate/common/libs/auth.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { deleteCookie, getCookie, setCookie } from 'cookies-next'; -import { AuthProps } from '../types/auth'; - -const COOKIE_KEY = 'auth'; - -export const getAuth = (): AuthProps | boolean => { - const auth = getCookie(COOKIE_KEY); - - if (typeof auth === 'string') { - return JSON.parse(auth); - } - - return false; -}; - -export const setAuth = (user: AuthProps): boolean => { - setCookie(COOKIE_KEY, JSON.stringify(user)); - - return true; -}; - -export const deleteAuth = (): boolean => { - deleteCookie(COOKIE_KEY); - - return true; -}; diff --git a/src-migrate/common/libs/clsxm.ts b/src-migrate/common/libs/clsxm.ts deleted file mode 100644 index 0fc10317..00000000 --- a/src-migrate/common/libs/clsxm.ts +++ /dev/null @@ -1,6 +0,0 @@ -import clsx, { ClassValue } from 'clsx'; -import { twMerge } from 'tw-merge'; - -export default function clsxm(...classes: ClassValue[]) { - return twMerge(clsx(...classes)); -} diff --git a/src-migrate/common/libs/formatCurrency.ts b/src-migrate/common/libs/formatCurrency.ts deleted file mode 100644 index 41db4a6f..00000000 --- a/src-migrate/common/libs/formatCurrency.ts +++ /dev/null @@ -1,5 +0,0 @@ -const formatCurrency = (value: number) => { - return value.toLocaleString('id-ID'); -}; - -export default formatCurrency; diff --git a/src-migrate/common/libs/odooApi.ts b/src-migrate/common/libs/odooApi.ts deleted file mode 100644 index 2dbc18d3..00000000 --- a/src-migrate/common/libs/odooApi.ts +++ /dev/null @@ -1,81 +0,0 @@ -import axios, { AxiosRequestConfig, Method } from 'axios'; -import { getCookie, setCookie } from 'cookies-next'; -import { getAuth } from './auth'; -import { AuthApiProps, AuthProps } from '../types/auth'; - -const ODOO_HOST = process.env.NEXT_PUBLIC_ODOO_API_HOST as string; - -const renewToken = async () => { - let token = await axios.get(`${ODOO_HOST}/api/token`); - setCookie('token', token.data.result); - - return token.data.result; -}; - -const getToken = async () => { - let token = getCookie('token'); - if (token == undefined) token = await renewToken(); - - return token; -}; - -const maxConnectionAttempt = 15; -let connectionAttempt = 0; - -const odooApi = async ( - method: Method, - url: string, - data = {}, - headers = {} -): Promise<any> => { - connectionAttempt++; - - try { - let token = await getToken(); - const auth = getAuth(); - - let axiosParameter: AxiosRequestConfig = { - method, - url: process.env.NEXT_PUBLIC_ODOO_API_HOST + url, - headers: { Authorization: token, ...headers }, - }; - - if (typeof auth === 'object' && 'token' in auth) { - axiosParameter.headers = { - ...axiosParameter.headers, - Token: auth.token, - }; - } - - if (method.toUpperCase() === 'POST') { - axiosParameter.headers = { - ...axiosParameter.headers, - 'Content-Type': 'application/x-www-form-urlencoded', - }; - } - - if (Object.keys(data).length > 0) { - axiosParameter.data = new URLSearchParams( - Object.entries(data) - ).toString(); - } - - let res = await axios(axiosParameter); - const authResponse: AuthApiProps = res.data; - - if ( - authResponse.status.code == 401 && - connectionAttempt < maxConnectionAttempt - ) { - await renewToken(); - return odooApi(method, url, data, headers); - } - - return authResponse.result || null; - } catch (error) { - console.log(error); - return null; - } -}; - -export default odooApi; diff --git a/src-migrate/common/libs/parse b/src-migrate/common/libs/parse deleted file mode 100644 index e69de29b..00000000 --- a/src-migrate/common/libs/parse +++ /dev/null diff --git a/src-migrate/common/stores/useRegisterStore.ts b/src-migrate/common/stores/useRegisterStore.ts deleted file mode 100644 index 90ce8a2b..00000000 --- a/src-migrate/common/stores/useRegisterStore.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { create } from 'zustand'; -import { RegisterProps } from '../types/auth'; -import { registerSchema } from '../validations/auth'; -import { ZodError } from 'zod'; - -type State = { - form: RegisterProps; - errors: { - [key in keyof RegisterProps]?: string; - }; - isCheckedTNC: boolean; - isOpenTNC: boolean; - isValidCaptcha: boolean; -}; - -type Action = { - updateForm: (name: string, value: string) => void; - updateValidCaptcha: (value: boolean) => void; - toggleCheckTNC: () => void; - openTNC: () => void; - closeTNC: () => void; - validate: () => void; -}; - -export const useRegisterStore = create<State & Action>((set, get) => ({ - form: { - company: '', - name: '', - email: '', - password: '', - phone: '', - }, - updateForm: (name, value) => - set((state) => ({ form: { ...state.form, [name]: value } })), - - errors: {}, - validate: () => { - try { - registerSchema.parse(get().form); - set({ errors: {} }); - } catch (error) { - if (error instanceof ZodError) { - const errors: State['errors'] = {}; - error.errors.forEach( - (e) => (errors[e.path[0] as keyof RegisterProps] = e.message) - ); - set({ errors }); - } - } - }, - isCheckedTNC: false, - toggleCheckTNC: () => set((state) => ({ isCheckedTNC: !state.isCheckedTNC })), - - isOpenTNC: false, - openTNC: () => set(() => ({ isOpenTNC: true })), - closeTNC: () => set(() => ({ isOpenTNC: false })), - - isValidCaptcha: false, - updateValidCaptcha: (value) => set(() => ({ isValidCaptcha: value })), -})); diff --git a/src-migrate/common/styles/fonts/Inter/Inter-Black.woff b/src-migrate/common/styles/fonts/Inter/Inter-Black.woff Binary files differdeleted file mode 100644 index a18593a0..00000000 --- a/src-migrate/common/styles/fonts/Inter/Inter-Black.woff +++ /dev/null diff --git a/src-migrate/common/styles/fonts/Inter/Inter-Black.woff2 b/src-migrate/common/styles/fonts/Inter/Inter-Black.woff2 Binary files differdeleted file mode 100644 index 68f64c9e..00000000 --- a/src-migrate/common/styles/fonts/Inter/Inter-Black.woff2 +++ /dev/null diff --git a/src-migrate/common/styles/fonts/Inter/Inter-BlackItalic.woff b/src-migrate/common/styles/fonts/Inter/Inter-BlackItalic.woff Binary files differdeleted file mode 100644 index b6b01943..00000000 --- a/src-migrate/common/styles/fonts/Inter/Inter-BlackItalic.woff +++ /dev/null diff --git a/src-migrate/common/styles/fonts/Inter/Inter-BlackItalic.woff2 b/src-migrate/common/styles/fonts/Inter/Inter-BlackItalic.woff2 Binary files differdeleted file mode 100644 index 1c9c7ca8..00000000 --- a/src-migrate/common/styles/fonts/Inter/Inter-BlackItalic.woff2 +++ /dev/null diff --git a/src-migrate/common/styles/fonts/Inter/Inter-Bold.woff b/src-migrate/common/styles/fonts/Inter/Inter-Bold.woff Binary files differdeleted file mode 100644 index eaf3d4bf..00000000 --- a/src-migrate/common/styles/fonts/Inter/Inter-Bold.woff +++ /dev/null diff --git a/src-migrate/common/styles/fonts/Inter/Inter-Bold.woff2 b/src-migrate/common/styles/fonts/Inter/Inter-Bold.woff2 Binary files differdeleted file mode 100644 index 2846f29c..00000000 --- a/src-migrate/common/styles/fonts/Inter/Inter-Bold.woff2 +++ /dev/null diff --git a/src-migrate/common/styles/fonts/Inter/Inter-BoldItalic.woff b/src-migrate/common/styles/fonts/Inter/Inter-BoldItalic.woff Binary files differdeleted file mode 100644 index 32750761..00000000 --- a/src-migrate/common/styles/fonts/Inter/Inter-BoldItalic.woff +++ /dev/null diff --git a/src-migrate/common/styles/fonts/Inter/Inter-BoldItalic.woff2 b/src-migrate/common/styles/fonts/Inter/Inter-BoldItalic.woff2 Binary files differdeleted file mode 100644 index 0b1fe8e1..00000000 --- a/src-migrate/common/styles/fonts/Inter/Inter-BoldItalic.woff2 +++ /dev/null diff --git a/src-migrate/common/styles/fonts/Inter/Inter-ExtraBold.woff b/src-migrate/common/styles/fonts/Inter/Inter-ExtraBold.woff Binary files differdeleted file mode 100644 index c2c17ede..00000000 --- a/src-migrate/common/styles/fonts/Inter/Inter-ExtraBold.woff +++ /dev/null diff --git a/src-migrate/common/styles/fonts/Inter/Inter-ExtraBold.woff2 b/src-migrate/common/styles/fonts/Inter/Inter-ExtraBold.woff2 Binary files differdeleted file mode 100644 index c24c2bdc..00000000 --- a/src-migrate/common/styles/fonts/Inter/Inter-ExtraBold.woff2 +++ /dev/null diff --git a/src-migrate/common/styles/fonts/Inter/Inter-ExtraBoldItalic.woff b/src-migrate/common/styles/fonts/Inter/Inter-ExtraBoldItalic.woff Binary files differdeleted file mode 100644 index c42f7052..00000000 --- a/src-migrate/common/styles/fonts/Inter/Inter-ExtraBoldItalic.woff +++ /dev/null diff --git a/src-migrate/common/styles/fonts/Inter/Inter-ExtraBoldItalic.woff2 b/src-migrate/common/styles/fonts/Inter/Inter-ExtraBoldItalic.woff2 Binary files differdeleted file mode 100644 index 4a81dc79..00000000 --- a/src-migrate/common/styles/fonts/Inter/Inter-ExtraBoldItalic.woff2 +++ /dev/null diff --git a/src-migrate/common/styles/fonts/Inter/Inter-ExtraLight.woff b/src-migrate/common/styles/fonts/Inter/Inter-ExtraLight.woff Binary files differdeleted file mode 100644 index d0de5f39..00000000 --- a/src-migrate/common/styles/fonts/Inter/Inter-ExtraLight.woff +++ /dev/null diff --git a/src-migrate/common/styles/fonts/Inter/Inter-ExtraLight.woff2 b/src-migrate/common/styles/fonts/Inter/Inter-ExtraLight.woff2 Binary files differdeleted file mode 100644 index f2ea706f..00000000 --- a/src-migrate/common/styles/fonts/Inter/Inter-ExtraLight.woff2 +++ /dev/null diff --git a/src-migrate/common/styles/fonts/Inter/Inter-ExtraLightItalic.woff b/src-migrate/common/styles/fonts/Inter/Inter-ExtraLightItalic.woff Binary files differdeleted file mode 100644 index 81f1a28e..00000000 --- a/src-migrate/common/styles/fonts/Inter/Inter-ExtraLightItalic.woff +++ /dev/null diff --git a/src-migrate/common/styles/fonts/Inter/Inter-ExtraLightItalic.woff2 b/src-migrate/common/styles/fonts/Inter/Inter-ExtraLightItalic.woff2 Binary files differdeleted file mode 100644 index 9af717ba..00000000 --- a/src-migrate/common/styles/fonts/Inter/Inter-ExtraLightItalic.woff2 +++ /dev/null diff --git a/src-migrate/common/styles/fonts/Inter/Inter-Italic.woff b/src-migrate/common/styles/fonts/Inter/Inter-Italic.woff Binary files differdeleted file mode 100644 index a806b382..00000000 --- a/src-migrate/common/styles/fonts/Inter/Inter-Italic.woff +++ /dev/null diff --git a/src-migrate/common/styles/fonts/Inter/Inter-Italic.woff2 b/src-migrate/common/styles/fonts/Inter/Inter-Italic.woff2 Binary files differdeleted file mode 100644 index a619fc54..00000000 --- a/src-migrate/common/styles/fonts/Inter/Inter-Italic.woff2 +++ /dev/null diff --git a/src-migrate/common/styles/fonts/Inter/Inter-Light.woff b/src-migrate/common/styles/fonts/Inter/Inter-Light.woff Binary files differdeleted file mode 100644 index c496464d..00000000 --- a/src-migrate/common/styles/fonts/Inter/Inter-Light.woff +++ /dev/null diff --git a/src-migrate/common/styles/fonts/Inter/Inter-Light.woff2 b/src-migrate/common/styles/fonts/Inter/Inter-Light.woff2 Binary files differdeleted file mode 100644 index bc4be665..00000000 --- a/src-migrate/common/styles/fonts/Inter/Inter-Light.woff2 +++ /dev/null diff --git a/src-migrate/common/styles/fonts/Inter/Inter-LightItalic.woff b/src-migrate/common/styles/fonts/Inter/Inter-LightItalic.woff Binary files differdeleted file mode 100644 index f84a9de3..00000000 --- a/src-migrate/common/styles/fonts/Inter/Inter-LightItalic.woff +++ /dev/null diff --git a/src-migrate/common/styles/fonts/Inter/Inter-LightItalic.woff2 b/src-migrate/common/styles/fonts/Inter/Inter-LightItalic.woff2 Binary files differdeleted file mode 100644 index 842b2dfc..00000000 --- a/src-migrate/common/styles/fonts/Inter/Inter-LightItalic.woff2 +++ /dev/null diff --git a/src-migrate/common/styles/fonts/Inter/Inter-Medium.woff b/src-migrate/common/styles/fonts/Inter/Inter-Medium.woff Binary files differdeleted file mode 100644 index d546843f..00000000 --- a/src-migrate/common/styles/fonts/Inter/Inter-Medium.woff +++ /dev/null diff --git a/src-migrate/common/styles/fonts/Inter/Inter-Medium.woff2 b/src-migrate/common/styles/fonts/Inter/Inter-Medium.woff2 Binary files differdeleted file mode 100644 index f92498a2..00000000 --- a/src-migrate/common/styles/fonts/Inter/Inter-Medium.woff2 +++ /dev/null diff --git a/src-migrate/common/styles/fonts/Inter/Inter-MediumItalic.woff b/src-migrate/common/styles/fonts/Inter/Inter-MediumItalic.woff Binary files differdeleted file mode 100644 index 459a6568..00000000 --- a/src-migrate/common/styles/fonts/Inter/Inter-MediumItalic.woff +++ /dev/null diff --git a/src-migrate/common/styles/fonts/Inter/Inter-MediumItalic.woff2 b/src-migrate/common/styles/fonts/Inter/Inter-MediumItalic.woff2 Binary files differdeleted file mode 100644 index 0e3019f4..00000000 --- a/src-migrate/common/styles/fonts/Inter/Inter-MediumItalic.woff2 +++ /dev/null diff --git a/src-migrate/common/styles/fonts/Inter/Inter-Regular.woff b/src-migrate/common/styles/fonts/Inter/Inter-Regular.woff Binary files differdeleted file mode 100644 index 62d3a618..00000000 --- a/src-migrate/common/styles/fonts/Inter/Inter-Regular.woff +++ /dev/null diff --git a/src-migrate/common/styles/fonts/Inter/Inter-Regular.woff2 b/src-migrate/common/styles/fonts/Inter/Inter-Regular.woff2 Binary files differdeleted file mode 100644 index 6c2b6893..00000000 --- a/src-migrate/common/styles/fonts/Inter/Inter-Regular.woff2 +++ /dev/null diff --git a/src-migrate/common/styles/fonts/Inter/Inter-SemiBold.woff b/src-migrate/common/styles/fonts/Inter/Inter-SemiBold.woff Binary files differdeleted file mode 100644 index a815f43a..00000000 --- a/src-migrate/common/styles/fonts/Inter/Inter-SemiBold.woff +++ /dev/null diff --git a/src-migrate/common/styles/fonts/Inter/Inter-SemiBold.woff2 b/src-migrate/common/styles/fonts/Inter/Inter-SemiBold.woff2 Binary files differdeleted file mode 100644 index 611e90c9..00000000 --- a/src-migrate/common/styles/fonts/Inter/Inter-SemiBold.woff2 +++ /dev/null diff --git a/src-migrate/common/styles/fonts/Inter/Inter-SemiBoldItalic.woff b/src-migrate/common/styles/fonts/Inter/Inter-SemiBoldItalic.woff Binary files differdeleted file mode 100644 index 909e43a9..00000000 --- a/src-migrate/common/styles/fonts/Inter/Inter-SemiBoldItalic.woff +++ /dev/null diff --git a/src-migrate/common/styles/fonts/Inter/Inter-SemiBoldItalic.woff2 b/src-migrate/common/styles/fonts/Inter/Inter-SemiBoldItalic.woff2 Binary files differdeleted file mode 100644 index 545685bd..00000000 --- a/src-migrate/common/styles/fonts/Inter/Inter-SemiBoldItalic.woff2 +++ /dev/null diff --git a/src-migrate/common/styles/fonts/Inter/Inter-Thin.woff b/src-migrate/common/styles/fonts/Inter/Inter-Thin.woff Binary files differdeleted file mode 100644 index 62bc58cd..00000000 --- a/src-migrate/common/styles/fonts/Inter/Inter-Thin.woff +++ /dev/null diff --git a/src-migrate/common/styles/fonts/Inter/Inter-Thin.woff2 b/src-migrate/common/styles/fonts/Inter/Inter-Thin.woff2 Binary files differdeleted file mode 100644 index abbc3a5c..00000000 --- a/src-migrate/common/styles/fonts/Inter/Inter-Thin.woff2 +++ /dev/null diff --git a/src-migrate/common/styles/fonts/Inter/Inter-ThinItalic.woff b/src-migrate/common/styles/fonts/Inter/Inter-ThinItalic.woff Binary files differdeleted file mode 100644 index 700a7f06..00000000 --- a/src-migrate/common/styles/fonts/Inter/Inter-ThinItalic.woff +++ /dev/null diff --git a/src-migrate/common/styles/fonts/Inter/Inter-ThinItalic.woff2 b/src-migrate/common/styles/fonts/Inter/Inter-ThinItalic.woff2 Binary files differdeleted file mode 100644 index ab0b2002..00000000 --- a/src-migrate/common/styles/fonts/Inter/Inter-ThinItalic.woff2 +++ /dev/null diff --git a/src-migrate/common/styles/fonts/Inter/Inter-italic.var.woff2 b/src-migrate/common/styles/fonts/Inter/Inter-italic.var.woff2 Binary files differdeleted file mode 100644 index b826d5af..00000000 --- a/src-migrate/common/styles/fonts/Inter/Inter-italic.var.woff2 +++ /dev/null diff --git a/src-migrate/common/styles/fonts/Inter/Inter-roman.var.woff2 b/src-migrate/common/styles/fonts/Inter/Inter-roman.var.woff2 Binary files differdeleted file mode 100644 index 6a256a06..00000000 --- a/src-migrate/common/styles/fonts/Inter/Inter-roman.var.woff2 +++ /dev/null diff --git a/src-migrate/common/styles/fonts/Inter/Inter.var.woff2 b/src-migrate/common/styles/fonts/Inter/Inter.var.woff2 Binary files differdeleted file mode 100644 index 365eedc5..00000000 --- a/src-migrate/common/styles/fonts/Inter/Inter.var.woff2 +++ /dev/null diff --git a/src-migrate/common/styles/fonts/Inter/inter.css b/src-migrate/common/styles/fonts/Inter/inter.css deleted file mode 100644 index de6ce273..00000000 --- a/src-migrate/common/styles/fonts/Inter/inter.css +++ /dev/null @@ -1,199 +0,0 @@ -@font-face { - font-family: 'Inter'; - font-style: normal; - font-weight: 100; - font-display: swap; - src: url('Inter-Thin.woff2?v=3.19') format('woff2'), - url('Inter-Thin.woff?v=3.19') format('woff'); -} -@font-face { - font-family: 'Inter'; - font-style: italic; - font-weight: 100; - font-display: swap; - src: url('Inter-ThinItalic.woff2?v=3.19') format('woff2'), - url('Inter-ThinItalic.woff?v=3.19') format('woff'); -} - -@font-face { - font-family: 'Inter'; - font-style: normal; - font-weight: 200; - font-display: swap; - src: url('Inter-ExtraLight.woff2?v=3.19') format('woff2'), - url('Inter-ExtraLight.woff?v=3.19') format('woff'); -} -@font-face { - font-family: 'Inter'; - font-style: italic; - font-weight: 200; - font-display: swap; - src: url('Inter-ExtraLightItalic.woff2?v=3.19') format('woff2'), - url('Inter-ExtraLightItalic.woff?v=3.19') format('woff'); -} - -@font-face { - font-family: 'Inter'; - font-style: normal; - font-weight: 300; - font-display: swap; - src: url('Inter-Light.woff2?v=3.19') format('woff2'), - url('Inter-Light.woff?v=3.19') format('woff'); -} -@font-face { - font-family: 'Inter'; - font-style: italic; - font-weight: 300; - font-display: swap; - src: url('Inter-LightItalic.woff2?v=3.19') format('woff2'), - url('Inter-LightItalic.woff?v=3.19') format('woff'); -} - -@font-face { - font-family: 'Inter'; - font-style: normal; - font-weight: 400; - font-display: swap; - src: url('Inter-Regular.woff2?v=3.19') format('woff2'), - url('Inter-Regular.woff?v=3.19') format('woff'); -} -@font-face { - font-family: 'Inter'; - font-style: italic; - font-weight: 400; - font-display: swap; - src: url('Inter-Italic.woff2?v=3.19') format('woff2'), - url('Inter-Italic.woff?v=3.19') format('woff'); -} - -@font-face { - font-family: 'Inter'; - font-style: normal; - font-weight: 500; - font-display: swap; - src: url('Inter-Medium.woff2?v=3.19') format('woff2'), - url('Inter-Medium.woff?v=3.19') format('woff'); -} -@font-face { - font-family: 'Inter'; - font-style: italic; - font-weight: 500; - font-display: swap; - src: url('Inter-MediumItalic.woff2?v=3.19') format('woff2'), - url('Inter-MediumItalic.woff?v=3.19') format('woff'); -} - -@font-face { - font-family: 'Inter'; - font-style: normal; - font-weight: 600; - font-display: swap; - src: url('Inter-SemiBold.woff2?v=3.19') format('woff2'), - url('Inter-SemiBold.woff?v=3.19') format('woff'); -} -@font-face { - font-family: 'Inter'; - font-style: italic; - font-weight: 600; - font-display: swap; - src: url('Inter-SemiBoldItalic.woff2?v=3.19') format('woff2'), - url('Inter-SemiBoldItalic.woff?v=3.19') format('woff'); -} - -@font-face { - font-family: 'Inter'; - font-style: normal; - font-weight: 700; - font-display: swap; - src: url('Inter-Bold.woff2?v=3.19') format('woff2'), - url('Inter-Bold.woff?v=3.19') format('woff'); -} -@font-face { - font-family: 'Inter'; - font-style: italic; - font-weight: 700; - font-display: swap; - src: url('Inter-BoldItalic.woff2?v=3.19') format('woff2'), - url('Inter-BoldItalic.woff?v=3.19') format('woff'); -} - -@font-face { - font-family: 'Inter'; - font-style: normal; - font-weight: 800; - font-display: swap; - src: url('Inter-ExtraBold.woff2?v=3.19') format('woff2'), - url('Inter-ExtraBold.woff?v=3.19') format('woff'); -} -@font-face { - font-family: 'Inter'; - font-style: italic; - font-weight: 800; - font-display: swap; - src: url('Inter-ExtraBoldItalic.woff2?v=3.19') format('woff2'), - url('Inter-ExtraBoldItalic.woff?v=3.19') format('woff'); -} - -@font-face { - font-family: 'Inter'; - font-style: normal; - font-weight: 900; - font-display: swap; - src: url('Inter-Black.woff2?v=3.19') format('woff2'), - url('Inter-Black.woff?v=3.19') format('woff'); -} -@font-face { - font-family: 'Inter'; - font-style: italic; - font-weight: 900; - font-display: swap; - src: url('Inter-BlackItalic.woff2?v=3.19') format('woff2'), - url('Inter-BlackItalic.woff?v=3.19') format('woff'); -} - -/* ------------------------------------------------------- -Variable font. -Usage: - - html { font-family: 'Inter', sans-serif; } - @supports (font-variation-settings: normal) { - html { font-family: 'Inter var', sans-serif; } - } -*/ -@font-face { - font-family: 'Inter var'; - font-weight: 100 900; - font-display: swap; - font-style: normal; - font-named-instance: 'Regular'; - src: url('Inter-roman.var.woff2?v=3.19') format('woff2'); -} -@font-face { - font-family: 'Inter var'; - font-weight: 100 900; - font-display: swap; - font-style: italic; - font-named-instance: 'Italic'; - src: url('Inter-italic.var.woff2?v=3.19') format('woff2'); -} - -/* -------------------------------------------------------------------------- -[EXPERIMENTAL] Multi-axis, single variable font. - -Slant axis is not yet widely supported (as of February 2019) and thus this -multi-axis single variable font is opt-in rather than the default. - -When using this, you will probably need to set font-variation-settings -explicitly, e.g. - - * { font-variation-settings: "slnt" 0deg } - .italic { font-variation-settings: "slnt" 10deg } - -*/ -@font-face { - font-family: 'Inter var experimental'; - font-weight: 100 900; - font-display: swap; - font-style: oblique 0deg 10deg; - src: url('Inter.var.woff2?v=3.19') format('woff2'); -} diff --git a/src-migrate/common/styles/globals.css b/src-migrate/common/styles/globals.css deleted file mode 100644 index ea20b247..00000000 --- a/src-migrate/common/styles/globals.css +++ /dev/null @@ -1,674 +0,0 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; - -* { - -webkit-tap-highlight-color: transparent; -} - -html, -body { - @apply w-screen - text-body-2 - text-gray_r-12 - bg-gray_r-1 - overflow-x-clip; -} - -#__next main { - @apply min-h-screen; -} - -button { - @apply block; -} - -@layer base { - input[type='number']::-webkit-inner-spin-button, - input[type='number']::-webkit-outer-spin-button { - -webkit-appearance: none; - margin: 0; - } - - input[type='number'] { - -moz-appearance: textfield; - } -} - -@layer components { - .badge-red, - .badge-solid-red, - .badge-gray, - .badge-yellow, - .badge-blue, - .badge-green, - .badge-solid-green { - @apply text-[11px] - leading-none - font-medium - px-1 - py-1 - rounded - w-fit; - } - - .badge-red { - @apply bg-danger-100 - text-danger-600; - } - - .badge-solid-red { - @apply bg-danger-500 - text-white; - } - - .badge-gray { - @apply bg-gray_r-5 - text-gray_r-10; - } - - .badge-yellow { - @apply bg-warning-500 - text-warning-900; - } - - .badge-blue { - @apply bg-blue-200 - text-blue-600; - } - - .badge-green { - @apply bg-success-100 - text-success-600; - } - - .badge-solid-green { - @apply bg-success-500 - text-white; - } - - .form-label { - @apply font-medium - block; - } - - .form-input { - @apply p-3 - rounded - border - text-gray_r-12 - border-gray_r-7 - !bg-white - bg-transparent - w-full - leading-none - focus:outline-none - focus:border-warning-500 - disabled:bg-gray_r-5; - } - - .form-input[aria-invalid] { - @apply border-danger-500 - focus:border-danger-500; - } - - .form-input[type='file'] { - @apply py-2; - } - - .btn-yellow, - .btn-light, - .btn-red, - .btn-solid-red { - @apply block - w-fit - py-3 - px-6 - rounded - border - text-center - font-medium - ease-linear - duration-150; - } - - .btn-yellow { - @apply bg-warning-500 - border-warning-500 - hover:bg-warning-500/80 - disabled:text-gray_r-10 - disabled:bg-warning-200 - disabled:border-warning-200; - } - - .btn-red { - @apply bg-danger-100 - border-danger-300 - text-danger-500 - disabled:text-danger-400 - disabled:bg-danger-200; - } - - .btn-solid-red { - @apply bg-danger-500 - border-danger-500 - text-gray_r-1 - hover:bg-danger-500/80 - disabled:text-gray_r-1 - disabled:bg-danger-200 - disabled:border-danger-200; - } - - .btn-light { - @apply bg-gray_r-3 - border-gray_r-6 - disabled:text-gray_r-10 - disabled:bg-gray_r-6; - } - - .product-card { - @apply w-full - h-full - border - border-gray_r-3 - shadow - bg-white - rounded - relative - flex - flex-col; - } - - .product-card__image { - @apply w-full - h-[160px] - object-contain - object-center - border-b - border-gray_r-6; - } - - .product-card__content { - @apply p-2 - pb-3 - flex-1; - } - - .product-card__title { - @apply text-caption-1 - text-gray_r-12 - leading-5; - } - - .product-card__brand { - @apply text-caption-1 - mb-1 - block; - } - - .product__description { - @apply text-gray_r-12/90; - } - - .product__description br { - @apply block my-1; - } - - .product__description b { - @apply font-semibold; - } -} - -@layer utilities { - .wrap-line-ellipsis-1, - .wrap-line-ellipsis-2, - .wrap-line-ellipsis-3 { - display: -webkit-box; - -webkit-box-orient: vertical; - overflow: hidden; - text-overflow: ellipsis; - } - - .wrap-line-ellipsis-1 { - -webkit-line-clamp: 1; - } - - .wrap-line-ellipsis-2 { - -webkit-line-clamp: 2; - } - - .wrap-line-ellipsis-3 { - -webkit-line-clamp: 3; - } -} - -.menu-wrapper { - @apply fixed - top-0 - left-0 - bg-white - w-[80%] - h-full - z-[60] - overflow-y-auto - translate-x-[-100%] - ease-linear - duration-150; -} - -.menu-wrapper.active { - @apply translate-x-0; -} - -.overlay { - @apply fixed - top-0 - left-0 - w-full - h-full - z-[55] - bg-gray_r-12/40; -} - -.sticky-header { - @apply px-4 - py-3 - bg-gray_r-1/90 - backdrop-blur-lg - sticky - top-0 - border-b - border-gray_r-7 - z-50; -} - -.content-container { - @apply max-w-full - overflow-x-hidden; -} - -#indoteknik_toast { - @apply fixed - bottom-4 - translate-y-[200%] - left-[50%] - translate-x-[-50%] - z-[100] - flex - items-center - p-4 - mb-4 - w-[90%] - text-gray-500 - bg-white - border - border-gray-300 - rounded-lg - shadow - ease-linear - duration-300; -} - -#indoteknik_toast.active { - @apply translate-y-0; -} - -.category-menu { - @apply hidden; -} - -.swiper-slide { - @apply !h-auto; -} - -.lazy-load-image-background { - @apply !block - w-full; -} - -.swiper-pagination-bullet-active { - @apply !bg-danger-500; -} - -.pagination { - @apply flex - justify-center - gap-x-1; -} - -.pagination-item { - @apply p-1 - flex - justify-center - items-center - w-10 - rounded - ease-linear - duration-150 - border - border-gray_r-6 - bg-gray_r-3 - hover:bg-gray_r-5 - text-gray_r-12; -} - -.pagination-item--active { - @apply border-warning-500 - bg-warning-500 - hover:bg-warning-500; -} - -.pagination-dots { - @apply p-1 - flex - justify-center - items-end - w-10 - rounded - ease-linear - bg-gray_r-3 - text-caption-2; -} - -.idt-transition { - @apply transition-all - ease-out - duration-200; -} - -.form-select__placeholder { - @apply !text-gray_r-9; -} - -.form-select__control { - @apply !shadow-none - !border-gray_r-7; -} - -.form-select__control--menu-is-open { - @apply !border-warning-500; -} - -.table-specification { - @apply max-h-[500px] overflow-y-auto border border-gray_r-6; -} - -.table-specification > table { - @apply table-auto - border-collapse - w-full; -} - -.table-specification > table > thead > tr > th:last-child { - @apply w-3/12; -} - -.table-specification > table > thead { - @apply sticky top-0 border-b; -} - -.table-specification > table > thead > tr { - @apply bg-gray_r-1/80 backdrop-blur-lg; -} - -.table-specification th { - @apply font-semibold; -} - -.table-specification th, -.table-specification td { - @apply p-4 text-center; -} - -.table-specification > table > tbody > tr { - @apply odd:bg-gray_r-3 even:bg-gray_r-1; -} - -.table-cart, -.table-checkout { - @apply w-full - table-auto - border-collapse; -} - -.table-cart tr, -.table-checkout tr { - @apply border-y - border-gray_r-6 - first:border-t-0; -} - -.table-cart th, -.table-cart td, -.table-checkout th, -.table-checkout td { - @apply py-4 - px-3 - text-center - text-gray_r-12/90; -} - -.table-cart th, -.table-cart td { - @apply first:w-12; -} - -.table-cart th, -.table-checkout th { - @apply font-medium; -} - -.table-data { - @apply w-full - table-auto - border-collapse; -} - -.table-data thead tr { - @apply bg-gray_r-3; -} - -.table-data thead th { - @apply font-medium whitespace-nowrap; -} - -.table-data thead th, -.table-data tbody td { - @apply px-3 - py-4 - text-center; -} - -.table-data tbody td { - @apply text-gray_r-12/90; -} - -.table-data tbody tr { - @apply border-b - border-gray_r-6; -} - -.navbar-user-dropdown-button { - @apply flex-1 - flex - gap-x-2 - p-4 - items-center - bg-danger-500 - font-medium - !text-gray_r-1 - rounded-none - rounded-t-xl; -} - -.navbar-user-dropdown-button span { - @apply line-clamp-1; -} - -.navbar-user-dropdown-wrapper a, -.navbar-user-dropdown-wrapper button { - @apply text-gray_r-12/80 hover:bg-gray_r-5 font-medium py-2 px-4 w-full text-left; -} - -.navbar-user-dropdown { - @apply bg-white - border - border-gray_r-6 - py-2 - w-full - shadow; -} - -.category-mega-box-wrapper, -.navbar-user-dropdown-wrapper { - @apply absolute - opacity-0 - left-0 - top-[125%] - flex - w-full - z-10 - transition-all - ease-in - duration-200 - pointer-events-none - text-left; -} - -.category-mega-box-wrapper.show, -.navbar-user-dropdown-button:hover ~ .navbar-user-dropdown-wrapper, -.navbar-user-dropdown-wrapper:hover { - @apply top-[100%] - opacity-100 - pointer-events-auto; -} - -.category-mega-box { - @apply relative - py-2 - border - border-t-0 - bg-white - border-gray_r-6 - h-full - w-full; -} - -.category-mega-box > div { - @apply text-gray_r-12/80; -} - -.category-mega-box > div:hover .category-mega-box__parent { - @apply bg-gray_r-5; -} - -.category-mega-box > div:hover .category-mega-box__child-wrapper { - @apply opacity-100 - top-0 - pointer-events-auto; -} - -.category-mega-box .category-mega-box__parent { - @apply py-2.5 - px-4 - text-gray_r-12/80 - font-normal; -} - -.category-mega-box__child-wrapper { - @apply absolute - left-[100%] - top-12 - w-[40vw] - bg-gray_r-1/90 - backdrop-blur-md - border - border-gray_r-6 - p-6 - opacity-0 - h-full - transition-all - ease-in - duration-200 - pointer-events-none - z-50; -} - -.category-mega-box__child-one { - @apply text-gray_r-12/80 - hover:text-danger-500 - transition-colors - ease-linear - duration-100 - font-semibold; -} - -.category-mega-box__child-two { - @apply text-gray_r-12/80 - hover:text-danger-500 - transition-colors - ease-linear - duration-100 - font-normal; -} - -@keyframes page-loader { - 0% { - transform: rotate(0deg); - } - 100% { - transform: rotate(360deg); - } -} - -.page-loader { - animation-name: page-loader; - animation-duration: 1000ms; - animation-delay: 50ms; - animation-timing-function: ease-in-out; - animation-iteration-count: infinite; -} - -@keyframes shake { - 0% { - transform: translateX(0); - } - 10%, - 90% { - transform: translateX(-10px); - } - 20%, - 80% { - transform: translateX(10px); - } - 30%, - 50%, - 70% { - transform: translateX(-10px); - } - 40%, - 60% { - transform: translateX(10px); - } - 100% { - transform: translateX(0); - } -} - -.blink-color-flash-sale { - @apply text-body-1 md:text-title-sm; - transform: rotateY(180deg) rotateZ(120deg); - animation-name: blink-color-flash-sale; - animation-duration: 300ms; - animation-iteration-count: infinite; - animation-timing-function: linear; -} - -@keyframes blink-color-flash-sale { - from { - @apply text-danger-500; - } - to { - @apply text-warning-500; - } -} diff --git a/src-migrate/common/types/auth.ts b/src-migrate/common/types/auth.ts deleted file mode 100644 index 65fd06c7..00000000 --- a/src-migrate/common/types/auth.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { registerSchema } from '../validations/auth'; -import { OdooApiProps } from './odoo'; -import { z } from 'zod'; - -export type AuthProps = { - id: number; - parent_id: number; - parent_name: string; - partner_id: number; - name: string; - email: string; - phone: string; - mobile: string; - external: boolean; - company: boolean; - pricelist: string | null; - token: string; -}; - -export type AuthApiProps = OdooApiProps & { result: AuthProps }; - -export type RegisterProps = z.infer<typeof registerSchema>; - -export type RegisterResApiProps = { - register: boolean; - reason: 'EMAIL_USED' | 'NOT_ACTIVE' | null; -}; - -type ActivationResProps = { - activation: boolean; - user: AuthProps | null; -}; - -export type ActivationTokenProps = { - token: string; -}; - -export type ActivationTokenResApiProps = ActivationResProps & { - reason: 'INVALID_TOKEN' | null; -}; - -export type ActivationOtpProps = { - email: string; - otp: string; -}; - -export type ActivationOtpResApiProps = ActivationResProps & { - reason: 'INVALID_OTP' | null; -}; - -export type ActivationReqProps = { - email: string; -}; - -export type ActivationReqResApiProps = { - activation_request: boolean; - reason: 'NOT_FOUND' | 'ACTIVE' | null; -}; diff --git a/src-migrate/common/types/cart.ts b/src-migrate/common/types/cart.ts deleted file mode 100644 index 3aceeac4..00000000 --- a/src-migrate/common/types/cart.ts +++ /dev/null @@ -1,72 +0,0 @@ -import { CategoryPromo } from "./promotion"; - -type Price = { - price: number; - discount_percentage: number; - price_discount: number; -}; - -export type CartProduct = { - id: number; - image: string; - display_name: string; - name: string; - code: string; - price: Price; - qty: number; - weight: number; - package_weight: number; -}; - -export type CartItem = { - cart_id: number; - quantity: number; - selected: boolean; - can_buy: boolean; - cart_type: 'product' | 'promotion'; - id: number; - name: string; - stock: number; - weight: number; - attributes: string[]; - parent: { - id: number; - name: string; - image: string; - }; - price: Price; - manufacture: { - id: number; - name: string; - }; - has_flashsale: boolean; - subtotal: number; - - code?: string; - - image?: string; - remaining_time?: number; - promotion_type?: { - value?: CategoryPromo; - label?: string; - }; - limit_qty?: { - all?: number; - user?: number; - transaction?: number; - }; - remaining_qty?: { - all?: number; - user?: number; - transaction?: number; - }; - used_percentage?: number; - products?: CartProduct[]; - free_products?: CartProduct[]; - package_price?: number; -}; - -export type CartProps = { - product_total: number; - products: CartItem[]; -}; diff --git a/src-migrate/common/types/checkout.ts b/src-migrate/common/types/checkout.ts deleted file mode 100644 index dc1365d8..00000000 --- a/src-migrate/common/types/checkout.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { CartItem } from './cart'; - -export interface ICheckout { - total_purchase: number; - total_discount: number; - discount_voucher: number; - subtotal: number; - tax: number; - grand_total: number; - total_weight: { - kg: number; - g: number; - }; - has_product_without_weight: boolean; - products: CartItem[]; -} diff --git a/src-migrate/common/types/nav.ts b/src-migrate/common/types/nav.ts deleted file mode 100644 index ba97b1bf..00000000 --- a/src-migrate/common/types/nav.ts +++ /dev/null @@ -1,4 +0,0 @@ -export type SecondaryNavItemProps = { - label: string - href: string -} diff --git a/src-migrate/common/types/odoo.ts b/src-migrate/common/types/odoo.ts deleted file mode 100644 index b34bc667..00000000 --- a/src-migrate/common/types/odoo.ts +++ /dev/null @@ -1,6 +0,0 @@ -export type OdooApiProps = { - status: { - code: number; - description: string; - }; -}; diff --git a/src-migrate/common/types/pageContent.ts b/src-migrate/common/types/pageContent.ts deleted file mode 100644 index 4361deb7..00000000 --- a/src-migrate/common/types/pageContent.ts +++ /dev/null @@ -1,5 +0,0 @@ -export type PageContentProps = { - id: number; - url_path: string; - content: string; -} | null; diff --git a/src-migrate/common/types/productVariant.ts b/src-migrate/common/types/productVariant.ts deleted file mode 100644 index c4aa9534..00000000 --- a/src-migrate/common/types/productVariant.ts +++ /dev/null @@ -1,13 +0,0 @@ -export interface IProductVariant { - id: number; - parent_id: number; - display_name: string; - image: string; - name: string; - default_code: string; - price: { - price: number; - discount_percentage: number; - price_discount: number; - }; -} diff --git a/src-migrate/common/types/promotion.ts b/src-migrate/common/types/promotion.ts deleted file mode 100644 index 1f8316cf..00000000 --- a/src-migrate/common/types/promotion.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { IProductVariant } from './productVariant'; - -export interface IPromotion { - id: number; - program_id: number; - name: string; - type: { - value: CategoryPromo; - label: string; - }; - limit: number; - limit_user: number; - limit_trx: number; - price: number; - total_qty: number; - products: { - product_id: number; - qty: number; - }[]; - free_products: { - product_id: number; - qty: number; - }[]; -} - -export interface IProductVariantPromo extends IProductVariant { - qty: number; -} - -export type CategoryPromo = 'bundling' | 'discount_loading' | 'merchandise'; - -export interface ICategoryPromo { - value: CategoryPromo; - label: string; -} diff --git a/src-migrate/common/types/promotionProgram.ts b/src-migrate/common/types/promotionProgram.ts deleted file mode 100644 index 205884b6..00000000 --- a/src-migrate/common/types/promotionProgram.ts +++ /dev/null @@ -1,8 +0,0 @@ -export type IPromotionProgram = { - id: number; - name: string; - start_time: string; - end_time: string; - applies_to: string; - time_left: number; -}; diff --git a/src-migrate/common/types/solr.ts b/src-migrate/common/types/solr.ts deleted file mode 100644 index d231c305..00000000 --- a/src-migrate/common/types/solr.ts +++ /dev/null @@ -1,7 +0,0 @@ -export type SolrResponse<T> = { - response: { - numFound: number; - start: number; - docs: T; - }; -}; diff --git a/src-migrate/common/validations/auth.ts b/src-migrate/common/validations/auth.ts deleted file mode 100644 index 78fc5e71..00000000 --- a/src-migrate/common/validations/auth.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { z } from 'zod'; - -export const registerSchema = z.object({ - name: z.string().min(1, { message: 'Nama harus diisi' }), - email: z - .string() - .min(1, { message: 'Email harus diisi' }) - .email({ message: 'Email harus menggunakan format example@mail.com' }), - password: z.string().min(6, { message: 'Password minimal 6 karakter' }), - company: z.string().optional(), - phone: z - .string() - .min(1, { message: 'Nomor telepon harus diisi' }) - .refine((val) => /^\d{10,12}$/.test(val), { - message: 'Format nomor telepon tidak valid, contoh: 081234567890', - }), -}); |
