template improvements for scope choice and filtering
This commit is contained in:
@@ -40,6 +40,8 @@ const [generalPreNotes, setGeneralPreNotes] = createSignal('');
|
||||
// Template Creator State
|
||||
const [activeTemplateName, setActiveTemplateName] = createSignal('');
|
||||
const [activeTemplateItems, setActiveTemplateItems] = createStore<TemplateItem[]>([]);
|
||||
const [activeTemplateModifiers, setActiveTemplateModifiers] = createStore<Modifier[]>([]);
|
||||
const [activeTemplateSubScopeName, setActiveTemplateSubScopeName] = createSignal<string | undefined>(undefined);
|
||||
const [activeTemplateId, setActiveTemplateId] = createSignal<string | null>(null);
|
||||
|
||||
export const appStore = {
|
||||
@@ -111,6 +113,34 @@ export const appStore = {
|
||||
setTemplateName: setActiveTemplateName,
|
||||
templateItems: activeTemplateItems,
|
||||
setTemplateItems: setActiveTemplateItems,
|
||||
templateModifiers: activeTemplateModifiers,
|
||||
setTemplateModifiers: setActiveTemplateModifiers,
|
||||
templateSubScopeName: activeTemplateSubScopeName,
|
||||
setTemplateSubScopeName: setActiveTemplateSubScopeName,
|
||||
|
||||
addTemplateModifier(moduleId: string) {
|
||||
const module = ModifierRegistry.getModule(moduleId);
|
||||
const newModifier: Modifier = {
|
||||
id: Math.random().toString(36).substr(2, 9),
|
||||
moduleId: module.id,
|
||||
name: module.defaultLabel,
|
||||
value: module.defaultValue,
|
||||
valueType: module.defaultValueType,
|
||||
unitLabel: module.defaultUnitLabel,
|
||||
type: module.id as any,
|
||||
includeInTotal: module.id !== 'man-hours'
|
||||
};
|
||||
setActiveTemplateModifiers(prev => [...prev, newModifier]);
|
||||
},
|
||||
updateTemplateModifier: (modifierId: string, updates: Partial<Modifier>) => {
|
||||
setActiveTemplateModifiers(
|
||||
(m: Modifier) => m.id === modifierId,
|
||||
updates
|
||||
);
|
||||
},
|
||||
removeTemplateModifier: (modifierId: string) => {
|
||||
setActiveTemplateModifiers(prev => prev.filter(mod => mod.id !== modifierId));
|
||||
},
|
||||
|
||||
resetEstimate: () => {
|
||||
setActiveItems([]);
|
||||
@@ -127,5 +157,10 @@ export const appStore = {
|
||||
setJobInfo({ number: '', name: '', address: '', workOrder: '' });
|
||||
setGeneralEstimateNotes('');
|
||||
setGeneralPreNotes('');
|
||||
setActiveTemplateName('');
|
||||
setActiveTemplateItems([]);
|
||||
setActiveTemplateModifiers([]);
|
||||
setActiveTemplateSubScopeName(undefined);
|
||||
setActiveTemplateId(null);
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user