summaryrefslogtreecommitdiff
path: root/src-migrate
diff options
context:
space:
mode:
authorit-fixcomart <it@fixcomart.co.id>2024-12-24 08:51:37 +0700
committerit-fixcomart <it@fixcomart.co.id>2024-12-24 08:51:37 +0700
commit22bf497d3fd524a95982e090f2c8a1be6bde656b (patch)
tree1c394154c78ea81e06b302eeffcb9dfb14497144 /src-migrate
parentb2afb5c847c9983b098a3223fbcfdb666e65c8cb (diff)
parentd76f96c44f85e7e0efbd544e6b97bd80920b0039 (diff)
Merge branch 'new-release' into Feature/switch-account
# Conflicts: # src-migrate/modules/register/components/FormBisnis.tsx # src/lib/auth/components/Menu.jsx
Diffstat (limited to 'src-migrate')
-rw-r--r--src-migrate/components/ui/modal.tsx2
-rw-r--r--src-migrate/modules/popup-information/index.tsx58
-rw-r--r--src-migrate/modules/register/components/FormBisnis.tsx5
-rw-r--r--src-migrate/modules/register/components/RegistrasiBisnis.tsx19
-rw-r--r--src-migrate/modules/register/index.tsx54
-rw-r--r--src-migrate/types/auth.ts9
6 files changed, 81 insertions, 66 deletions
diff --git a/src-migrate/components/ui/modal.tsx b/src-migrate/components/ui/modal.tsx
index 34e1d1c3..50e7128f 100644
--- a/src-migrate/components/ui/modal.tsx
+++ b/src-migrate/components/ui/modal.tsx
@@ -71,7 +71,7 @@ export const Modal = ({
{title}
</div>
{close && (
- <button className="rounded-full h-10 w-10 flex justify-center items-center bg-white" type='button' onClick={close}>
+ <button className="rounded-full h-10 w-10 flex justify-center items-center bg-white" type='button' aria-label="Close" onClick={close}>
<XMarkIcon className='w-5 h-5 ' />
</button>
)}
diff --git a/src-migrate/modules/popup-information/index.tsx b/src-migrate/modules/popup-information/index.tsx
index 0d36f8e9..d50711cc 100644
--- a/src-migrate/modules/popup-information/index.tsx
+++ b/src-migrate/modules/popup-information/index.tsx
@@ -1,31 +1,63 @@
import { useRouter } from 'next/router';
import { useEffect, useState } from 'react';
-import { Modal } from "~/components/ui/modal";
+import Image from 'next/image';
+import Link from 'next/link';
+import { Modal } from '~/components/ui/modal';
import { getAuth } from '~/libs/auth';
-import PageContent from '../page-content';
+import dynamic from 'next/dynamic';
const PagePopupInformation = () => {
const router = useRouter();
const isHomePage = router.pathname === '/';
const auth = getAuth();
const [active, setActive] = useState<boolean>(false);
+ const [data, setData] = useState<any>(null);
+ const [loading, setLoading] = useState(true);
+
useEffect(() => {
- if (isHomePage && !auth) setActive(true);
+ const getData = async () => {
+ const res = await fetch(`/api/hero-banner?type=popup-banner`);
+ const { data } = await res.json();
+ if (data) {
+ setData(data);
+ }
+ setLoading(false);
+ };
+
+ if (isHomePage && !auth) {
+ setActive(true);
+ getData();
+ }
}, [isHomePage, auth]);
return (
<div className='group'>
- <Modal
- active={active}
- className='!w-fit !bg-transparent !border-none overflow-hidden'
- close={() => setActive(false)}
- mode='desktop'
- >
- <div className='w-[350px] md:w-[530px]' onClick={() => setActive(false)}>
- <PageContent path='/onbording-popup' />
- </div>
- </Modal>
+ {data && !loading && (
+ <Modal
+ active={active}
+ className='!w-fit !bg-transparent !border-none overflow-hidden'
+ close={() => setActive(false)}
+ mode='desktop'
+ >
+ <div
+ className='w-[350px] md:w-[530px]'
+ onClick={() => setActive(false)}
+ >
+ <Link href={data[0].url === false ? '/' :data[0].url} aria-label='popup'>
+ <Image
+ src={data[0]?.image}
+ alt={data[0]?.name}
+ width={1152}
+ height={768}
+ loading='eager'
+ sizes='(max-width: 768px) 100vw, 50vw'
+ priority={true}
+ />
+ </Link>
+ </div>
+ </Modal>
+ )}
</div>
);
};
diff --git a/src-migrate/modules/register/components/FormBisnis.tsx b/src-migrate/modules/register/components/FormBisnis.tsx
index 9f9f1ca5..0ead23ba 100644
--- a/src-migrate/modules/register/components/FormBisnis.tsx
+++ b/src-migrate/modules/register/components/FormBisnis.tsx
@@ -8,9 +8,6 @@ import {
} from 'react';
import { useMutation } from 'react-query';
import { useRegisterStore } from '../stores/useRegisterStore';
-import { RegisterProps } from '~/types/auth';
-import { registerUser } from '~/services/auth';
-import { useRouter } from 'next/router';
import {
Button,
Checkbox,
@@ -18,7 +15,6 @@ import {
color,
useToast,
} from '@chakra-ui/react';
-import Link from 'next/link';
import getFileBase64 from '@/core/utils/getFileBase64';
import { Controller, useForm } from 'react-hook-form';
import HookFormSelect from '@/core/components/elements/Select/HookFormSelect';
@@ -76,7 +72,6 @@ const form: React.FC<FormProps> = ({
const [industries, setIndustries] = useState<industry_id[]>([]);
const [companyTypes, setCompanyTypes] = useState<companyType[]>([]);
- const router = useRouter();
const toast = useToast();
const emailRef = useRef<HTMLInputElement>(null);
const businessNameRef = useRef<HTMLInputElement>(null);
diff --git a/src-migrate/modules/register/components/RegistrasiBisnis.tsx b/src-migrate/modules/register/components/RegistrasiBisnis.tsx
index 2a52170e..332c5358 100644
--- a/src-migrate/modules/register/components/RegistrasiBisnis.tsx
+++ b/src-migrate/modules/register/components/RegistrasiBisnis.tsx
@@ -1,19 +1,10 @@
-import { ChangeEvent, useEffect, useMemo, useState } from 'react';
+import { useEffect, useMemo, useState } from 'react';
import FormBisnis from './FormBisnis';
import Form from './Form';
-import TermCondition from './TermCondition';
-import FormCaptcha from './FormCaptcha';
import { Radio, RadioGroup, Stack, Divider, Button } from '@chakra-ui/react';
import React from 'react';
import { ChevronDownIcon, ChevronRightIcon } from '@heroicons/react/24/outline';
import { useRegisterStore } from '../stores/useRegisterStore';
-import { useMutation } from 'react-query';
-import { RegisterProps } from '~/types/auth';
-import { registerUser } from '~/services/auth';
-import router from 'next/router';
-import { useRouter } from 'next/router';
-import { UseToastOptions, useToast } from '@chakra-ui/react';
-import Link from 'next/link';
interface FormProps {
chekValid: boolean;
buttonSubmitClick: boolean;
@@ -28,13 +19,7 @@ const RegistrasiBisnis: React.FC<FormProps> = ({
const [isBisnisClicked, setisBisnisClicked] = useState(true);
const [selectedValue, setSelectedValue] = useState('PKP');
const [selectedValueBisnis, setSelectedValueBisnis] = useState('false');
- const { form, isCheckedTNC, isValidCaptcha, errors, validate, updateForm } =
- useRegisterStore();
- const isFormValid = useMemo(() => Object.keys(errors).length === 0, [errors]);
- const toast = useToast();
- const mutation = useMutation({
- mutationFn: (data: RegisterProps) => registerUser(data),
- });
+ const { validate, updateForm } = useRegisterStore();
useEffect(() => {
if (selectedValue === 'PKP') {
diff --git a/src-migrate/modules/register/index.tsx b/src-migrate/modules/register/index.tsx
index 3d6158c8..347f5c80 100644
--- a/src-migrate/modules/register/index.tsx
+++ b/src-migrate/modules/register/index.tsx
@@ -1,20 +1,24 @@
-import PageContent from '~/modules/page-content';
-import RegistrasiIndividu from './components/RegistrasiIndividu';
-import RegistrasiBisnis from './components/RegistrasiBisnis';
+import dynamic from 'next/dynamic';
import Link from 'next/link';
import Image from 'next/image';
-import IndoteknikLogo from '~/images/logo.png';
-import AccountActivation from '../account-activation';
import { useMemo, useState } from 'react';
-import { useRegisterStore } from './stores/useRegisterStore';
-import FormCaptcha from './components/FormCaptcha';
-import TermCondition from './components/TermCondition';
+import { useRouter } from 'next/router';
import { Button } from '@chakra-ui/react';
-import { useMutation } from 'react-query';
import { UseToastOptions, useToast } from '@chakra-ui/react';
-import { RegisterProps } from '~/types/auth';
+import { useMutation } from 'react-query';
+import { useRegisterStore } from './stores/useRegisterStore';
import { registerUser } from '~/services/auth';
-import { useRouter } from 'next/router';
+import IndoteknikLogo from '~/images/logo.png';
+import { RegisterProps } from '~/types/auth';
+
+const PageContent = dynamic(() => import('~/modules/page-content'));
+const RegistrasiIndividu = dynamic(
+ () => import('./components/RegistrasiIndividu')
+);
+const RegistrasiBisnis = dynamic(() => import('./components/RegistrasiBisnis'));
+const FormCaptcha = dynamic(() => import('./components/FormCaptcha'));
+const TermCondition = dynamic(() => import('./components/TermCondition'));
+const AccountActivation = dynamic(() => import('../account-activation'));
const LOGO_WIDTH = 150;
const LOGO_HEIGHT = LOGO_WIDTH / 3;
@@ -47,6 +51,7 @@ const Register = () => {
setIsIndividuClicked(false);
setIsBisnisClicked(true);
};
+
const handleSubmit = async () => {
if (!isFormValid) {
setNotValid(true);
@@ -98,10 +103,11 @@ const Register = () => {
break;
}
};
+
return (
<div className='container'>
<div className='grid grid-cols-1 md:grid-cols-2 gap-x-8 pt-10 px-2 md:pt-16'>
- <section className=''>
+ <section>
<div className='px-8 py-4 border'>
<Link href='/' className='block md:hidden'>
<Image
@@ -126,7 +132,7 @@ const Register = () => {
</label>
<div className='grid grid-cols-2 gap-x-3 mt-2 h-14 font-bold text-black hover:cursor-pointer'>
<div
- className={` border rounded-md flex justify-center items-center transition-colors duration-300 ease-in-out ${
+ className={`border rounded-md flex justify-center items-center transition-colors duration-300 ease-in-out ${
isIndividuClicked ? 'bg-red-500 text-white' : ''
}`}
onClick={handleIndividuClick}
@@ -134,7 +140,7 @@ const Register = () => {
<p>Individu</p>
</div>
<div
- className={` border rounded-md flex justify-center items-center transition-colors duration-300 ease-in-out ${
+ className={`border rounded-md flex justify-center items-center transition-colors duration-300 ease-in-out ${
isBisnisClicked ? 'bg-red-500 text-white' : ''
}`}
onClick={handleBisnisClick}
@@ -144,20 +150,16 @@ const Register = () => {
</div>
<div className='transition-opacity duration-300 ease-in-out'>
{isIndividuClicked && (
- <div className='opacity-100'>
- <RegistrasiIndividu
- chekValid={notValid}
- buttonSubmitClick={buttonSubmitClick}
- />
- </div>
+ <RegistrasiIndividu
+ chekValid={notValid}
+ buttonSubmitClick={buttonSubmitClick}
+ />
)}
{isBisnisClicked && (
- <div className='opacity-100'>
- <RegistrasiBisnis
- chekValid={notValid}
- buttonSubmitClick={buttonSubmitClick}
- />
- </div>
+ <RegistrasiBisnis
+ chekValid={notValid}
+ buttonSubmitClick={buttonSubmitClick}
+ />
)}
</div>
<section className='mt-2'>
diff --git a/src-migrate/types/auth.ts b/src-migrate/types/auth.ts
index 593e120f..8feac2e1 100644
--- a/src-migrate/types/auth.ts
+++ b/src-migrate/types/auth.ts
@@ -16,10 +16,11 @@ export type AuthProps = {
company: boolean;
pricelist: string | null;
token: string;
- feature : {
- onlyReadyStock : boolean,
- soApproval : boolean
- }
+ feature: {
+ onlyReadyStock: boolean;
+ soApproval: boolean;
+ };
+ partner_tempo: boolean;
};
export type AuthApiProps = OdooApiRes<AuthProps>;