import { Input } from "@/components/ui/input";
import { create } from "zustand";
interface UserFormState {
username?: string;
mobile?: string;
gmail?: string;
}
const initState: UserFormState = {
username: "",
mobile: "",
gmail: "",
};
const useUserForm = create<UserFormState>(() => ({
...initState,
}));
const setUsername = (setUsername: string) =>
useUserForm.setState({ username: setUsername });
const setMobile = (setMobile: string) =>
useUserForm.setState({ mobile: setMobile });
const setGmail = (setGmail: string) =>
useUserForm.setState({ gmail: setGmail });
const UsernameInput = () => {
const username = useUserForm((state) => state.username);
return (
<div>
<label>UsernameInput</label>
<Input
type="text"
value={username}
onChange={(e) => setUsername(e.target.value)}
/>
</div>
);
};
const MobileInput = () => {
const mobile = useUserForm((state) => state.mobile);
return (
<div>
<label>MobileInput</label>
<Input
type="text"
value={mobile}
onChange={(e) => setMobile(e.target.value)}
/>
</div>
);
};
const GmailInput = () => {
const gmail = useUserForm((state) => state.gmail);
return (
<div>
<label>GmailInput</label>
<Input
type="text"
value={gmail}
onChange={(e) => setGmail(e.target.value)}
/>
</div>
);
};
export const Demo001Zustand = () => {
return (
<>
<h2>Demo001Zustand.tsx</h2>
<UsernameInput />
<MobileInput />
<GmailInput />
</>
);
};
For further actions, you may consider blocking this person and/or reporting abuse
Top comments (0)