mirror of
https://github.com/faiztyanirh/clqms-shadcn-v1.git
synced 2026-04-25 10:32:06 +07:00
add reset field dependency
This commit is contained in:
parent
795251d911
commit
62b1d9fe45
@ -16,9 +16,9 @@
|
||||
|
||||
let props = $props();
|
||||
|
||||
let previousTestType = $state('');
|
||||
let resetRefNum = $state();
|
||||
|
||||
let previousRefType = $state('');
|
||||
let resetRefTxt = $state();
|
||||
|
||||
const { masterDetail, formFields, formActions, schema, initialForm } = props.context;
|
||||
|
||||
@ -225,30 +225,68 @@
|
||||
})
|
||||
});
|
||||
|
||||
$effect(() => {
|
||||
const currentTestType = formState.form.TestType;
|
||||
|
||||
if (previousTestType && currentTestType !== previousTestType) {
|
||||
calFormState.reset();
|
||||
refNumState.reset();
|
||||
refTxtState.reset();
|
||||
}
|
||||
|
||||
previousTestType = currentTestType;
|
||||
});
|
||||
function handleTestTypeChange(value) {
|
||||
formState.form.TestType = value;
|
||||
|
||||
//masih error cek dulu
|
||||
$effect(() => {
|
||||
const currentRefType = formState.form.RefType;
|
||||
|
||||
if (previousRefType && currentRefType !== previousRefType) {
|
||||
console.log('rst');
|
||||
refNumState.reset();
|
||||
refTxtState.reset();
|
||||
formState.form.ResultType = "";
|
||||
formState.errors.ResultType = null;
|
||||
formState.form.RefType = "";
|
||||
formState.errors.RefType = null;
|
||||
|
||||
calFormState.reset();
|
||||
refNumState.reset();
|
||||
refTxtState.reset();
|
||||
|
||||
resetRefNum?.();
|
||||
resetRefTxt?.();
|
||||
}
|
||||
|
||||
function handleResultTypeChange(value) {
|
||||
formState.form.ResultType = value;
|
||||
|
||||
formState.form.RefType = "";
|
||||
formState.errors.RefType = null;
|
||||
|
||||
calFormState.reset();
|
||||
refNumState.reset();
|
||||
refTxtState.reset();
|
||||
|
||||
resetRefNum?.();
|
||||
resetRefTxt?.();
|
||||
|
||||
let newRefType = "";
|
||||
if (value === 'TEXT') {
|
||||
newRefType = 'TEXT';
|
||||
}
|
||||
if (value === 'VSET') {
|
||||
newRefType = 'VSET';
|
||||
}
|
||||
if (value === 'NORES') {
|
||||
newRefType = 'NOREF';
|
||||
}
|
||||
|
||||
previousRefType = currentRefType;
|
||||
});
|
||||
if (newRefType) {
|
||||
formState.form.RefType = newRefType;
|
||||
handleRefTypeChange(newRefType);
|
||||
}
|
||||
}
|
||||
|
||||
function handleRefTypeChange(value) {
|
||||
formState.form.RefType = value;
|
||||
|
||||
refNumState.reset();
|
||||
refTxtState.reset();
|
||||
|
||||
resetRefNum?.();
|
||||
resetRefTxt?.();
|
||||
|
||||
if (value === 'RANGE' || value === 'THOLD') {
|
||||
refNumState.form.NumRefType = value;
|
||||
}
|
||||
if (value === 'TEXT' || value === 'VSET') {
|
||||
refTxtState.form.TxtRefType = value;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<FormPageContainer title="Create Test" {primaryAction} {secondaryActions} {actions}>
|
||||
@ -278,6 +316,9 @@
|
||||
{disabledResultTypes}
|
||||
{disabledReferenceTypes}
|
||||
{hiddenFields}
|
||||
{handleTestTypeChange}
|
||||
{handleResultTypeChange}
|
||||
{handleRefTypeChange}
|
||||
/>
|
||||
</Tabs.Content>
|
||||
<Tabs.Content value="calculation">
|
||||
@ -292,9 +333,9 @@
|
||||
<Tabs.Content value="reference">
|
||||
<div class="w-full h-full flex items-start">
|
||||
{#if refComponent === 'numeric'}
|
||||
<RefNum {refNumState} {refNumFormFields} refType={formState.form.RefType}/>
|
||||
<RefNum {refNumState} {refNumFormFields} bind:resetRefNum={resetRefNum}/>
|
||||
{:else if refComponent === 'text'}
|
||||
<RefTxt {refTxtState} refTxtFormFields={refTxtFormFieldsTransformed} refType={formState.form.RefType}/>
|
||||
<RefTxt {refTxtState} refTxtFormFields={refTxtFormFieldsTransformed} bind:resetRefTxt={resetRefTxt} />
|
||||
{:else}
|
||||
<div class="h-full w-full flex items-center">
|
||||
<ReusableEmpty desc="Select a Reference Type" />
|
||||
|
||||
@ -9,12 +9,16 @@
|
||||
import Trash2Icon from "@lucide/svelte/icons/trash-2";
|
||||
import { untrack } from "svelte";
|
||||
|
||||
let props = $props();
|
||||
let { resetRefNum = $bindable(), ...props } = $props()
|
||||
|
||||
let tempNumeric = $state([]);
|
||||
let editingId = $state(null);
|
||||
let idCounter = $state(0);
|
||||
|
||||
resetRefNum = () => {
|
||||
tempNumeric = [];
|
||||
};
|
||||
|
||||
let joinFields = $state({
|
||||
AgeStart: { DD: "", MM: "", YY: "" },
|
||||
AgeEnd: { DD: "", MM: "", YY: "" },
|
||||
@ -129,12 +133,6 @@
|
||||
return "-";
|
||||
};
|
||||
|
||||
$effect(() => {
|
||||
if (props.refType) {
|
||||
props.refNumState.form.NumRefType = props.refType;
|
||||
}
|
||||
});
|
||||
|
||||
$effect(() => {
|
||||
for (const key of ["AgeStart", "AgeEnd"]) {
|
||||
props.refNumState.form[key] =
|
||||
|
||||
@ -9,12 +9,16 @@
|
||||
import Trash2Icon from "@lucide/svelte/icons/trash-2";
|
||||
import { untrack } from "svelte";
|
||||
|
||||
let props = $props();
|
||||
let { resetRefTxt = $bindable(), ...props } = $props()
|
||||
|
||||
let tempTxt = $state([]);
|
||||
let editingId = $state(null);
|
||||
let idCounter = $state(0);
|
||||
|
||||
resetRefTxt = () => {
|
||||
tempTxt = [];
|
||||
};
|
||||
|
||||
let joinFields = $state({
|
||||
AgeStart: { DD: "", MM: "", YY: "" },
|
||||
AgeEnd: { DD: "", MM: "", YY: "" },
|
||||
@ -101,11 +105,11 @@
|
||||
|
||||
const txtRefTypeBadge = (type) => ({ TEXT: "TX", VSET: "VS" }[type] ?? null);;
|
||||
|
||||
$effect(() => {
|
||||
if (props.refType) {
|
||||
props.refTxtState.form.TxtRefType = props.refType;
|
||||
}
|
||||
});
|
||||
// $effect(() => {
|
||||
// if (props.refType) {
|
||||
// props.refTxtState.form.TxtRefType = props.refType;
|
||||
// }
|
||||
// });
|
||||
|
||||
$effect(() => {
|
||||
for (const key of ["AgeStart", "AgeEnd"]) {
|
||||
|
||||
@ -21,6 +21,9 @@
|
||||
disabledSign = false,
|
||||
joinFields = $bindable(),
|
||||
hiddenFields,
|
||||
handleTestTypeChange,
|
||||
handleResultTypeChange,
|
||||
handleRefTypeChange,
|
||||
} = $props();
|
||||
|
||||
let searchQuery = $state({});
|
||||
@ -155,6 +158,9 @@
|
||||
if (validateOn?.includes("input")) {
|
||||
formState.validateField?.(key, formState.form[key], false);
|
||||
}
|
||||
if (key === "TestType") {
|
||||
handleTestTypeChange(val);
|
||||
}
|
||||
if (key === "Province") {
|
||||
formState.form.City = "";
|
||||
if (formState.selectOptions) {
|
||||
@ -164,33 +170,11 @@
|
||||
formState.lastFetched.City = null;
|
||||
}
|
||||
}
|
||||
if (key === "TestType") {
|
||||
formState.form[key] = val;
|
||||
|
||||
formState.form.ResultType = "";
|
||||
formState.errors.ResultType = null;
|
||||
formState.form.RefType = "";
|
||||
formState.errors.RefType = null;
|
||||
|
||||
if (val === 'CALC') {
|
||||
formState.form.ResultType = 'NMRIC';
|
||||
}
|
||||
}
|
||||
if (key === "ResultType") {
|
||||
formState.form[key] = val;
|
||||
|
||||
formState.form.RefType = "";
|
||||
formState.errors.RefType = null;
|
||||
|
||||
if (val === 'TEXT') {
|
||||
formState.form.RefType = 'TEXT';
|
||||
}
|
||||
if (val === 'VSET') {
|
||||
formState.form.RefType = 'VSET';
|
||||
}
|
||||
if (val === 'NORES') {
|
||||
formState.form.RefType = 'NOREF';
|
||||
}
|
||||
handleResultTypeChange(val);
|
||||
}
|
||||
if (key === "RefType") {
|
||||
handleRefTypeChange(val);
|
||||
}
|
||||
}}
|
||||
onOpenChange={(open) => {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user