mirror of
https://github.com/CommunityOx/ox_lib.git
synced 2026-08-18 07:26:02 +01:00
refactor(web/input): remove input state
This commit is contained in:
@@ -27,7 +27,6 @@ const InputDialog: React.FC = () => {
|
|||||||
heading: '',
|
heading: '',
|
||||||
rows: [{ type: 'input', label: '' }],
|
rows: [{ type: 'input', label: '' }],
|
||||||
});
|
});
|
||||||
const [inputData, setInputData] = React.useState<Array<string | number | boolean>>([]);
|
|
||||||
const [passwordStates, setPasswordStates] = React.useState<boolean[]>([]);
|
const [passwordStates, setPasswordStates] = React.useState<boolean[]>([]);
|
||||||
const [visible, setVisible] = React.useState(false);
|
const [visible, setVisible] = React.useState(false);
|
||||||
const { locale } = useLocales();
|
const { locale } = useLocales();
|
||||||
@@ -48,7 +47,6 @@ const InputDialog: React.FC = () => {
|
|||||||
useNuiEvent<InputProps>('openDialog', (data) => {
|
useNuiEvent<InputProps>('openDialog', (data) => {
|
||||||
setPasswordStates([]);
|
setPasswordStates([]);
|
||||||
setFields(data);
|
setFields(data);
|
||||||
setInputData([]);
|
|
||||||
setVisible(true);
|
setVisible(true);
|
||||||
data.rows.forEach((row, index) => {
|
data.rows.forEach((row, index) => {
|
||||||
fieldForm.insert(index, { value: row.type !== 'checkbox' ? row.default : row.checked } || { value: null });
|
fieldForm.insert(index, { value: row.type !== 'checkbox' ? row.default : row.checked } || { value: null });
|
||||||
@@ -64,22 +62,11 @@ const InputDialog: React.FC = () => {
|
|||||||
fetchNui('inputData');
|
fetchNui('inputData');
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleChange = (value: string | number | boolean, index: number) => {
|
|
||||||
setInputData((previousData) => {
|
|
||||||
previousData[index] = value;
|
|
||||||
return previousData;
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
const handleConfirm = () => {
|
|
||||||
setVisible(false);
|
|
||||||
fetchNui('inputData', inputData);
|
|
||||||
};
|
|
||||||
|
|
||||||
const onSubmit = form.handleSubmit(async (data) => {
|
const onSubmit = form.handleSubmit(async (data) => {
|
||||||
|
setVisible(false);
|
||||||
const values: any[] = [];
|
const values: any[] = [];
|
||||||
Object.values(data.test).forEach((obj: { value: any }) => values.push(obj.value));
|
Object.values(data.test).forEach((obj: { value: any }) => values.push(obj.value));
|
||||||
console.log(values);
|
fetchNui('inputData', values);
|
||||||
await new Promise((resolve) => setTimeout(resolve, 200));
|
await new Promise((resolve) => setTimeout(resolve, 200));
|
||||||
form.reset();
|
form.reset();
|
||||||
fieldForm.remove();
|
fieldForm.remove();
|
||||||
@@ -93,9 +80,6 @@ const InputDialog: React.FC = () => {
|
|||||||
centered
|
centered
|
||||||
closeOnClickOutside={false}
|
closeOnClickOutside={false}
|
||||||
size="xs"
|
size="xs"
|
||||||
onKeyDown={(e) => {
|
|
||||||
if (e.key === 'Enter' && visible) return handleConfirm();
|
|
||||||
}}
|
|
||||||
styles={{ title: { textAlign: 'center', width: '100%', fontSize: 18 } }}
|
styles={{ title: { textAlign: 'center', width: '100%', fontSize: 18 } }}
|
||||||
title={fields.heading}
|
title={fields.heading}
|
||||||
withCloseButton={false}
|
withCloseButton={false}
|
||||||
|
|||||||
Reference in New Issue
Block a user