apps/web: add BIGSTRING metaObject fieldType
This commit is contained in:
parent
dc1c315702
commit
e668f0ded2
@ -1,7 +1,7 @@
|
||||
/* eslint-disable @typescript-eslint/no-explicit-any */
|
||||
export type MetaObject = {
|
||||
disabled: boolean;
|
||||
fieldType: 'CHECKBOX' | 'DECIMAL' | 'INT' | 'STRING' | 'TEXTAREA';
|
||||
fieldType: 'CHECKBOX' | 'DECIMAL' | 'INT' | 'STRING' | 'BIGSTRING';
|
||||
label: string;
|
||||
max: number;
|
||||
min: number;
|
||||
|
||||
@ -3,7 +3,7 @@ import type { MetaObject } from '@/api/ius/types';
|
||||
import { mapFieldTypeElement } from '@/config/elements';
|
||||
import { useFormStore } from '@/store/ius/form';
|
||||
import { ElementContainer } from '@repo/ui';
|
||||
import { get, omit } from 'radash';
|
||||
import { get } from 'radash';
|
||||
import { useEffect } from 'react';
|
||||
|
||||
function RenderElement({
|
||||
@ -56,14 +56,24 @@ export function Elements({ data, metaData }: FormComponentProps) {
|
||||
init(data);
|
||||
}, [data, init]);
|
||||
|
||||
const defaultElements = Object.keys(metaData).filter(
|
||||
(x) => metaData[x]?.fieldType !== 'BIGSTRING'
|
||||
);
|
||||
|
||||
const bigStringElements = Object.keys(metaData).filter(
|
||||
(x) => metaData[x]?.fieldType === 'BIGSTRING'
|
||||
);
|
||||
|
||||
return (
|
||||
<>
|
||||
<div className="mt-2 grid gap-2 gap-x-4 md:grid md:grid-cols-2 lg:grid-cols-3">
|
||||
{(Object.keys(omit(metaData, ['comment'])) as Array<keyof MetaObject>).map((name) => (
|
||||
{defaultElements.map((name) => (
|
||||
<RenderElement key={name} {...get(metaData, name)} name={name} />
|
||||
))}
|
||||
</div>
|
||||
<RenderElement {...get(metaData, 'comment')} fieldType="TEXTAREA" name="comment" />
|
||||
{bigStringElements.map((name) => (
|
||||
<RenderElement key={name} {...get(metaData, name)} name={name} fieldType="BIGSTRING" />
|
||||
))}
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
@ -6,9 +6,9 @@ function wrapMap<C, T extends Record<MetaObject['fieldType'], C>>(arg: T) {
|
||||
}
|
||||
|
||||
export const mapFieldTypeElement = wrapMap({
|
||||
BIGSTRING: Textarea,
|
||||
CHECKBOX: Checkbox,
|
||||
DECIMAL: InputNumber,
|
||||
INT: InputNumber,
|
||||
STRING: Input,
|
||||
TEXTAREA: Textarea,
|
||||
});
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user