- Upgrade Nx 22.1.1 → 22.6.3 and all patch/minor dependencies - Restructure shared libs: move business logic from utils to service - Consolidate shadcn-ui into ui lib with atomic design pattern - Fix container centering for landing app (Tailwind v4 compatibility) - Fix button styling by updating @source directive in globals.css - Fix SiCss3 → SiCss rename in react-icons 5.6 - Fix duplicate useSession export conflict - Remove dead code, comments, and unused files Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
60 lines
1.1 KiB
TypeScript
60 lines
1.1 KiB
TypeScript
import { useForm } from 'react-hook-form';
|
|
import { zodResolver } from '@hookform/resolvers/zod';
|
|
import {
|
|
gachaItemSchema,
|
|
TGachaItem
|
|
} from '@imphnen-frontend-service/service';
|
|
import { toast } from 'sonner';
|
|
|
|
export const useItem = (
|
|
nextStep: () => void,
|
|
initialValues?: TGachaItem
|
|
) => {
|
|
const form = useForm<TGachaItem>({
|
|
resolver: zodResolver(gachaItemSchema),
|
|
mode: 'all',
|
|
defaultValues: initialValues,
|
|
});
|
|
|
|
const onSubmit = form.handleSubmit((data) => {
|
|
console.log('Form data:', data);
|
|
nextStep();
|
|
});
|
|
|
|
return {
|
|
form,
|
|
onSubmit,
|
|
};
|
|
};
|
|
|
|
export const useConfirmItem = (
|
|
onClose: () => void,
|
|
resetStep: () => void,
|
|
actionFunction?: () => Promise<boolean>,
|
|
messages?: {
|
|
success?: string;
|
|
error?: string;
|
|
}
|
|
) => {
|
|
const onConfirm = async () => {
|
|
try {
|
|
toast.success(messages?.success);
|
|
onClose();
|
|
resetStep();
|
|
} catch (error) {
|
|
console.log(error);
|
|
toast.error(messages?.error);
|
|
}
|
|
};
|
|
|
|
const onCancel = () => {
|
|
onClose();
|
|
resetStep();
|
|
};
|
|
|
|
return {
|
|
onConfirm,
|
|
onCancel,
|
|
};
|
|
};
|