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