Register and OTP (#31)

* feat: responsive

* fix: success register

* feat: auth login responsive && auth login implementation

* fix: login page button disabled & register page

* fix: conflict

* fix: button disabled when loading

* feat: register and otp integration

* Update middleware.ts
This commit is contained in:
Naufal Azmi
2025-05-26 20:49:57 +07:00
committed by GitHub
parent 0f46244d2b
commit aaf5b4262d
14 changed files with 273 additions and 90 deletions
+2
View File
@@ -2,3 +2,5 @@ export * from './use-query-state';
export * from './use-auth-store';
export * from './use-modal-login';
export * from './use-session';
export * from './use-register';
export * from './use-otp';
+29
View File
@@ -0,0 +1,29 @@
import { TVerifyOtpRequest, usePostVerifyEmail } from '@imphnen-frontend-service/service';
import { toast } from 'sonner';
import { useNavigate, useSearchParams } from 'react-router';
export const useOtp = () => {
const navigate = useNavigate();
const { mutate, isPending } = usePostVerifyEmail();
const [ searchParams ] = useSearchParams();
const otp = (payload: TVerifyOtpRequest) => {
mutate({ ...payload, email: searchParams.get("email") || "" }, {
onSuccess: (data) => {
toast.success('Berhasil Registrasi');
navigate("/auth/register/success");
},
onError: (err) => {
toast.error(
err?.response?.data?.message ??
'Terjadi Kesalahan yang tidak diketahui'
);
},
});
};
return {
otp,
isLoading: isPending,
};
};
+28
View File
@@ -0,0 +1,28 @@
import { TRegisterRequest, usePostRegister } from '@imphnen-frontend-service/service';
import { toast } from 'sonner';
import { useNavigate } from 'react-router';
export const useRegister = () => {
const navigate = useNavigate();
const { mutate, isPending } = usePostRegister();
const register = (payload: TRegisterRequest) => {
mutate(payload, {
onSuccess: (data) => {
toast.success('Berhasil Registrasi');
navigate(`/auth/register/otp?email=${payload.email}`);
},
onError: (err) => {
toast.error(
err?.response?.data?.message ??
'Terjadi Kesalahan yang tidak diketahui'
);
},
});
};
return {
register,
isLoading: isPending,
};
};