template improvements for scope choice and filtering

This commit is contained in:
2026-03-16 15:31:52 -05:00
parent 229b4b1486
commit bd65217ddc
5 changed files with 269 additions and 69 deletions
+35
View File
@@ -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);
}
};