import React, { useState } from 'react'; import { useMockStore } from '../../data/mockStore'; const STUBBED_TEMPLATES = [ { id: 'atlas_glassmaster', name: 'Atlas GlassMaster', category: 'Roofing', brand: 'Atlas', description: [ "Remove existing shingles down to deck.", "Re-nail any loose wood. If bad or rotten wood is discovered, it will be replaced at a price of $50 per sheet.", "Install 3' of Atlas WeatherMaster ice and water shield at all gutter lines, rakes edges, and valleys.", "Install Atlas Summit 60 Synthetic underlayment.", "Install Atlas Glassmaster AR Shingles." ], materials: [ { desc: 'Atlas Glassmaster AR', baseUnitCost: 37.67, uom: 'SQ' }, { desc: 'Atlas Pro-Cut Hip & Ridge', baseUnitCost: 78.50, uom: 'BD' }, { desc: 'Atlas 6X Pro-Cut Starter', baseUnitCost: 70.80, uom: 'BD' }, { desc: 'Atlas Summit 60 Synthetic Underlayment', baseUnitCost: 116.00, uom: 'RL' }, { desc: 'Atlas WeatherMaster Ice & Water', baseUnitCost: 65.00, uom: 'RL' }, { desc: 'Coil Nails 1 1/4"', baseUnitCost: 35.00, uom: 'BX' }, { desc: 'Plastic Cap Nails', baseUnitCost: 28.50, uom: 'BX' }, { desc: 'Geocel 2300 Clear Sealant', baseUnitCost: 8.95, uom: 'EA' } ] }, { id: 'atlas_glassmaster_srs', name: 'Atlas GlassMaster - SRS', category: 'Roofing', brand: 'SRS', description: [ "Remove existing shingles down to deck.", "Re-nail any loose wood.", "Install 3' of Atlas WeatherMaster ice and water shield at all gutter lines, rakes edges, and valleys.", "Install Atlas Summit 60 Synthetic underlayment.", "Install Atlas Glassmaster AR Shingles (SRS distribution)." ], materials: [ { desc: 'Atlas Glassmaster AR', baseUnitCost: 37.67, uom: 'SQ' }, { desc: 'Atlas Pro-Cut Hip & Ridge', baseUnitCost: 78.50, uom: 'BD' }, { desc: 'Atlas 6X Pro-Cut Starter', baseUnitCost: 70.80, uom: 'BD' }, { desc: 'Atlas Summit 60 Synthetic Underlayment', baseUnitCost: 116.00, uom: 'RL' }, { desc: 'Atlas WeatherMaster Ice & Water', baseUnitCost: 65.00, uom: 'RL' }, { desc: 'Coil Nails 1 1/4"', baseUnitCost: 35.00, uom: 'BX' }, { desc: 'Plastic Cap Nails', baseUnitCost: 28.50, uom: 'BX' }, { desc: 'Geocel 2300 Clear Sealant', baseUnitCost: 8.95, uom: 'EA' } ] }, { id: 'atlas_pinnacle_pristine', name: 'Atlas Pinnacle Pristine', category: 'Roofing', brand: 'Atlas', description: [ "Remove existing shingles down to deck.", "Re-nail any loose wood.", "Install 3' of Atlas WeatherMaster ice and water shield.", "Install Atlas Summit 60 Synthetic underlayment.", "Install Atlas Pinnacle Pristine Lifetime Dimensional Shingles." ], materials: [ { desc: 'Atlas Pinnacle Pristine', baseUnitCost: 42.50, uom: 'SQ' }, { desc: 'Atlas Pro-Cut High Profile Hip & Ridge', baseUnitCost: 85.00, uom: 'BD' }, { desc: 'Atlas Pro-Cut Starter', baseUnitCost: 72.00, uom: 'BD' }, { desc: 'Atlas Summit 60 Synthetic Underlayment', baseUnitCost: 116.00, uom: 'RL' }, { desc: 'Atlas WeatherMaster Ice & Water', baseUnitCost: 65.00, uom: 'RL' }, { desc: 'Coil Nails 1 1/4"', baseUnitCost: 35.00, uom: 'BX' }, { desc: 'Plastic Cap Nails', baseUnitCost: 28.50, uom: 'BX' }, { desc: 'Geocel 2300 Clear Sealant', baseUnitCost: 8.95, uom: 'EA' } ] }, { id: 'atlas_pinnacle_pristine_srs', name: 'Atlas Pinnacle Pristine - SRS', category: 'Roofing', brand: 'SRS', description: [ "Remove existing shingles down to deck.", "Re-nail any loose wood.", "Install 3' of Atlas WeatherMaster ice and water shield.", "Install Atlas Summit 60 Synthetic underlayment.", "Install Atlas Pinnacle Pristine Lifetime Dimensional Shingles (SRS distribution)." ], materials: [ { desc: 'Atlas Pinnacle Pristine', baseUnitCost: 42.50, uom: 'SQ' }, { desc: 'Atlas Pro-Cut High Profile Hip & Ridge', baseUnitCost: 85.00, uom: 'BD' }, { desc: 'Atlas Pro-Cut Starter', baseUnitCost: 72.00, uom: 'BD' }, { desc: 'Atlas Summit 60 Synthetic Underlayment', baseUnitCost: 116.00, uom: 'RL' }, { desc: 'Atlas WeatherMaster Ice & Water', baseUnitCost: 65.00, uom: 'RL' }, { desc: 'Coil Nails 1 1/4"', baseUnitCost: 35.00, uom: 'BX' }, { desc: 'Plastic Cap Nails', baseUnitCost: 28.50, uom: 'BX' }, { desc: 'Geocel 2300 Clear Sealant', baseUnitCost: 8.95, uom: 'EA' } ] }, { id: 'atlas_stormmaster_shake', name: 'Atlas StormMaster Shake', category: 'Roofing', brand: 'Atlas', description: [ "Remove existing shingles down to deck.", "Re-nail any loose wood.", "Install 3' of Atlas WeatherMaster ice and water shield at all eaves and valleys.", "Install Atlas Summit 60 Synthetic underlayment.", "Install Atlas StormMaster Shake Impact Resistant Shingles." ], materials: [ { desc: 'Atlas StormMaster Shake', baseUnitCost: 55.00, uom: 'SQ' }, { desc: 'Atlas Pro-Cut Hip & Ridge', baseUnitCost: 78.50, uom: 'BD' }, { desc: 'Atlas 6X Pro-Cut Starter', baseUnitCost: 70.80, uom: 'BD' }, { desc: 'Atlas Summit 60 Synthetic Underlayment', baseUnitCost: 116.00, uom: 'RL' }, { desc: 'Atlas WeatherMaster Ice & Water', baseUnitCost: 65.00, uom: 'RL' }, { desc: 'Coil Nails 1 1/4"', baseUnitCost: 35.00, uom: 'BX' }, { desc: 'Plastic Cap Nails', baseUnitCost: 28.50, uom: 'BX' }, { desc: 'Geocel 2300 Clear Sealant', baseUnitCost: 8.95, uom: 'EA' } ] }, { id: 'certainteed_landmark', name: 'CertainTeed Landmark AR', category: 'Roofing', brand: 'CertainTeed', description: [ "Remove existing shingles down to deck.", "Re-nail any loose wood.", "Install CertainTeed WinterGuard ice and water shield.", "Install CertainTeed RoofRunner Synthetic underlayment.", "Install CertainTeed Landmark AR Shingles." ], materials: [ { desc: 'CertainTeed Landmark AR', baseUnitCost: 44.00, uom: 'SQ' }, { desc: 'CertainTeed ShadowRidge', baseUnitCost: 82.00, uom: 'BD' }, { desc: 'CertainTeed SwiftStart', baseUnitCost: 75.00, uom: 'BD' }, { desc: 'CertainTeed RoofRunner', baseUnitCost: 125.00, uom: 'RL' }, { desc: 'CertainTeed WinterGuard', baseUnitCost: 70.00, uom: 'RL' }, { desc: 'Coil Nails 1 1/4"', baseUnitCost: 35.00, uom: 'BX' }, { desc: 'Plastic Cap Nails', baseUnitCost: 28.50, uom: 'BX' }, { desc: 'Geocel 2300 Clear Sealant', baseUnitCost: 8.95, uom: 'EA' } ] }, { id: 'certainteed_landmark_srs', name: 'CertainTeed Landmark AR - SRS', category: 'Roofing', brand: 'SRS', description: [ "Remove existing shingles down to deck.", "Re-nail any loose wood.", "Install CertainTeed WinterGuard ice and water shield.", "Install CertainTeed RoofRunner Synthetic underlayment.", "Install CertainTeed Landmark AR Shingles (SRS distribution)." ], materials: [ { desc: 'CertainTeed Landmark AR', baseUnitCost: 44.00, uom: 'SQ' }, { desc: 'CertainTeed ShadowRidge', baseUnitCost: 82.00, uom: 'BD' }, { desc: 'CertainTeed SwiftStart', baseUnitCost: 75.00, uom: 'BD' }, { desc: 'CertainTeed RoofRunner', baseUnitCost: 125.00, uom: 'RL' }, { desc: 'CertainTeed WinterGuard', baseUnitCost: 70.00, uom: 'RL' }, { desc: 'Coil Nails 1 1/4"', baseUnitCost: 35.00, uom: 'BX' }, { desc: 'Plastic Cap Nails', baseUnitCost: 28.50, uom: 'BX' }, { desc: 'Geocel 2300 Clear Sealant', baseUnitCost: 8.95, uom: 'EA' } ] }, { id: 'certainteed_presidential_shake', name: 'CertainTeed Presidential Shake TL', category: 'Roofing', brand: 'CertainTeed', description: [ "Remove existing shingles down to deck.", "Re-nail any loose wood.", "Install CertainTeed WinterGuard ice and water shield at all eaves and valleys.", "Install CertainTeed RoofRunner Synthetic underlayment.", "Install CertainTeed Presidential Shake TL triple-layer shingles." ], materials: [ { desc: 'CertainTeed Presidential Shake TL', baseUnitCost: 72.00, uom: 'SQ' }, { desc: 'CertainTeed Presidential Ridge', baseUnitCost: 92.00, uom: 'BD' }, { desc: 'CertainTeed SwiftStart', baseUnitCost: 75.00, uom: 'BD' }, { desc: 'CertainTeed RoofRunner', baseUnitCost: 125.00, uom: 'RL' }, { desc: 'CertainTeed WinterGuard', baseUnitCost: 70.00, uom: 'RL' }, { desc: 'Coil Nails 1 1/4"', baseUnitCost: 35.00, uom: 'BX' }, { desc: 'Plastic Cap Nails', baseUnitCost: 28.50, uom: 'BX' }, { desc: 'Geocel 2300 Clear Sealant', baseUnitCost: 8.95, uom: 'EA' } ] }, { id: 'gaf_royal_sovereign', name: 'GAF Royal Sovereign', category: 'Roofing', brand: 'GAF', description: [ "Remove existing shingles down to deck.", "Re-nail any loose wood.", "Install GAF WeatherWatch ice and water shield at eaves and valleys.", "Install GAF FeltBuster Synthetic underlayment.", "Install GAF Royal Sovereign 3-tab shingles." ], materials: [ { desc: 'GAF Royal Sovereign', baseUnitCost: 32.00, uom: 'SQ' }, { desc: 'GAF Seal-A-Ridge', baseUnitCost: 72.00, uom: 'BD' }, { desc: 'GAF Pro-Start Starter Strip', baseUnitCost: 68.00, uom: 'BD' }, { desc: 'GAF FeltBuster Synthetic Underlayment', baseUnitCost: 110.00, uom: 'RL' }, { desc: 'GAF WeatherWatch Ice & Water', baseUnitCost: 68.00, uom: 'RL' }, { desc: 'Coil Nails 1 1/4"', baseUnitCost: 35.00, uom: 'BX' }, { desc: 'Plastic Cap Nails', baseUnitCost: 28.50, uom: 'BX' }, { desc: 'Geocel 2300 Clear Sealant', baseUnitCost: 8.95, uom: 'EA' } ] }, { id: 'gaf_timberline_hdz', name: 'GAF Timberline HDZ', category: 'Roofing', brand: 'GAF', description: [ "Remove existing shingles down to deck.", "Re-nail any loose wood.", "Install GAF WeatherWatch ice and water shield at eaves, rakes, and valleys.", "Install GAF FeltBuster Synthetic underlayment.", "Install GAF Timberline HDZ Laminated Architectural Shingles." ], materials: [ { desc: 'GAF Timberline HDZ', baseUnitCost: 45.00, uom: 'SQ' }, { desc: 'GAF TimberTex Premium Ridge Cap', baseUnitCost: 85.00, uom: 'BD' }, { desc: 'GAF Pro-Start Starter Strip', baseUnitCost: 68.00, uom: 'BD' }, { desc: 'GAF FeltBuster Synthetic Underlayment', baseUnitCost: 110.00, uom: 'RL' }, { desc: 'GAF WeatherWatch Ice & Water', baseUnitCost: 68.00, uom: 'RL' }, { desc: 'Coil Nails 1 1/4"', baseUnitCost: 35.00, uom: 'BX' }, { desc: 'Plastic Cap Nails', baseUnitCost: 28.50, uom: 'BX' }, { desc: 'Geocel 2300 Clear Sealant', baseUnitCost: 8.95, uom: 'EA' } ] }, { id: 'gaf_timberline_ultra_hd', name: 'GAF Timberline Ultra HD', category: 'Roofing', brand: 'GAF', description: [ "Remove existing shingles down to deck.", "Re-nail any loose wood.", "Install GAF WeatherWatch ice and water shield at eaves, rakes, and valleys.", "Install GAF FeltBuster Synthetic underlayment.", "Install GAF Timberline Ultra HD extra-thick dimensional shingles." ], materials: [ { desc: 'GAF Timberline Ultra HD', baseUnitCost: 52.00, uom: 'SQ' }, { desc: 'GAF TimberTex Premium Ridge Cap', baseUnitCost: 85.00, uom: 'BD' }, { desc: 'GAF Pro-Start Starter Strip', baseUnitCost: 68.00, uom: 'BD' }, { desc: 'GAF FeltBuster Synthetic Underlayment', baseUnitCost: 110.00, uom: 'RL' }, { desc: 'GAF WeatherWatch Ice & Water', baseUnitCost: 68.00, uom: 'RL' }, { desc: 'Coil Nails 1 1/4"', baseUnitCost: 35.00, uom: 'BX' }, { desc: 'Plastic Cap Nails', baseUnitCost: 28.50, uom: 'BX' }, { desc: 'Geocel 2300 Clear Sealant', baseUnitCost: 8.95, uom: 'EA' } ] }, { id: 'gaf_timberline_hdz_srs', name: 'GAF Timberline HDZ - SRS', category: 'Roofing', brand: 'SRS', description: [ "Remove existing shingles down to deck.", "Re-nail any loose wood.", "Install GAF WeatherWatch ice and water shield at eaves, rakes, and valleys.", "Install GAF FeltBuster Synthetic underlayment.", "Install GAF Timberline HDZ Laminated Architectural Shingles (SRS distribution)." ], materials: [ { desc: 'GAF Timberline HDZ', baseUnitCost: 45.00, uom: 'SQ' }, { desc: 'GAF TimberTex Premium Ridge Cap', baseUnitCost: 85.00, uom: 'BD' }, { desc: 'GAF Pro-Start Starter Strip', baseUnitCost: 68.00, uom: 'BD' }, { desc: 'GAF FeltBuster Synthetic Underlayment', baseUnitCost: 110.00, uom: 'RL' }, { desc: 'GAF WeatherWatch Ice & Water', baseUnitCost: 68.00, uom: 'RL' }, { desc: 'Coil Nails 1 1/4"', baseUnitCost: 35.00, uom: 'BX' }, { desc: 'Plastic Cap Nails', baseUnitCost: 28.50, uom: 'BX' }, { desc: 'Geocel 2300 Clear Sealant', baseUnitCost: 8.95, uom: 'EA' } ] }, { id: 'iko_armourshake', name: 'IKO Armourshake', category: 'Roofing', brand: 'IKO', description: [ "Remove existing shingles down to deck.", "Re-nail any loose wood.", "Install IKO ArmourGard ice and water shield at eaves and valleys.", "Install IKO RoofGard-SB Synthetic underlayment.", "Install IKO Armourshake heavyweight laminated shingles." ], materials: [ { desc: 'IKO Armourshake', baseUnitCost: 58.00, uom: 'SQ' }, { desc: 'IKO Hip & Ridge 12', baseUnitCost: 80.00, uom: 'BD' }, { desc: 'IKO Leading Edge Plus Starter Strip', baseUnitCost: 71.00, uom: 'BD' }, { desc: 'IKO RoofGard-SB Synthetic Underlayment', baseUnitCost: 118.00, uom: 'RL' }, { desc: 'IKO ArmourGard Ice & Water', baseUnitCost: 67.00, uom: 'RL' }, { desc: 'Coil Nails 1 1/4"', baseUnitCost: 35.00, uom: 'BX' }, { desc: 'Plastic Cap Nails', baseUnitCost: 28.50, uom: 'BX' }, { desc: 'Geocel 2300 Clear Sealant', baseUnitCost: 8.95, uom: 'EA' } ] }, { id: 'iko_armourshake_srs', name: 'IKO Armourshake - SRS', category: 'Roofing', brand: 'SRS', description: [ "Remove existing shingles down to deck.", "Re-nail any loose wood.", "Install IKO ArmourGard ice and water shield at eaves and valleys.", "Install IKO RoofGard-SB Synthetic underlayment.", "Install IKO Armourshake heavyweight laminated shingles (SRS distribution)." ], materials: [ { desc: 'IKO Armourshake', baseUnitCost: 58.00, uom: 'SQ' }, { desc: 'IKO Hip & Ridge 12', baseUnitCost: 80.00, uom: 'BD' }, { desc: 'IKO Leading Edge Plus Starter Strip', baseUnitCost: 71.00, uom: 'BD' }, { desc: 'IKO RoofGard-SB Synthetic Underlayment', baseUnitCost: 118.00, uom: 'RL' }, { desc: 'IKO ArmourGard Ice & Water', baseUnitCost: 67.00, uom: 'RL' }, { desc: 'Coil Nails 1 1/4"', baseUnitCost: 35.00, uom: 'BX' }, { desc: 'Plastic Cap Nails', baseUnitCost: 28.50, uom: 'BX' }, { desc: 'Geocel 2300 Clear Sealant', baseUnitCost: 8.95, uom: 'EA' } ] }, { id: 'iko_cambridge', name: 'IKO Cambridge', category: 'Roofing', brand: 'IKO', description: [ "Remove existing shingles down to deck.", "Re-nail any loose wood.", "Install IKO ArmourGard ice and water shield.", "Install IKO RoofGard-SB Synthetic underlayment.", "Install IKO Cambridge Architectural Shingles." ], materials: [ { desc: 'IKO Cambridge', baseUnitCost: 42.00, uom: 'SQ' }, { desc: 'IKO Hip & Ridge 12', baseUnitCost: 80.00, uom: 'BD' }, { desc: 'IKO Leading Edge Plus Starter Strip', baseUnitCost: 71.00, uom: 'BD' }, { desc: 'IKO RoofGard-SB Synthetic Underlayment', baseUnitCost: 118.00, uom: 'RL' }, { desc: 'IKO ArmourGard Ice & Water', baseUnitCost: 67.00, uom: 'RL' }, { desc: 'Coil Nails 1 1/4"', baseUnitCost: 35.00, uom: 'BX' }, { desc: 'Plastic Cap Nails', baseUnitCost: 28.50, uom: 'BX' }, { desc: 'Geocel 2300 Clear Sealant', baseUnitCost: 8.95, uom: 'EA' } ] }, { id: 'iko_dynasty', name: 'IKO Dynasty', category: 'Roofing', brand: 'IKO', description: [ "Remove existing shingles down to deck.", "Re-nail any loose wood.", "Install IKO ArmourGard ice and water shield at eaves, rakes, and valleys.", "Install IKO RoofGard-SB Synthetic underlayment.", "Install IKO Dynasty Impact Resistant shingles." ], materials: [ { desc: 'IKO Dynasty', baseUnitCost: 54.00, uom: 'SQ' }, { desc: 'IKO Hip & Ridge 12', baseUnitCost: 80.00, uom: 'BD' }, { desc: 'IKO Leading Edge Plus Starter Strip', baseUnitCost: 71.00, uom: 'BD' }, { desc: 'IKO RoofGard-SB Synthetic Underlayment', baseUnitCost: 118.00, uom: 'RL' }, { desc: 'IKO ArmourGard Ice & Water', baseUnitCost: 67.00, uom: 'RL' }, { desc: 'Coil Nails 1 1/4"', baseUnitCost: 35.00, uom: 'BX' }, { desc: 'Plastic Cap Nails', baseUnitCost: 28.50, uom: 'BX' }, { desc: 'Geocel 2300 Clear Sealant', baseUnitCost: 8.95, uom: 'EA' } ] }, { id: 'iko_dynasty_srs', name: 'IKO Dynasty - SRS', category: 'Roofing', brand: 'SRS', description: [ "Remove existing shingles down to deck.", "Re-nail any loose wood.", "Install IKO ArmourGard ice and water shield at eaves, rakes, and valleys.", "Install IKO RoofGard-SB Synthetic underlayment.", "Install IKO Dynasty Impact Resistant shingles (SRS distribution)." ], materials: [ { desc: 'IKO Dynasty', baseUnitCost: 54.00, uom: 'SQ' }, { desc: 'IKO Hip & Ridge 12', baseUnitCost: 80.00, uom: 'BD' }, { desc: 'IKO Leading Edge Plus Starter Strip', baseUnitCost: 71.00, uom: 'BD' }, { desc: 'IKO RoofGard-SB Synthetic Underlayment', baseUnitCost: 118.00, uom: 'RL' }, { desc: 'IKO ArmourGard Ice & Water', baseUnitCost: 67.00, uom: 'RL' }, { desc: 'Coil Nails 1 1/4"', baseUnitCost: 35.00, uom: 'BX' }, { desc: 'Plastic Cap Nails', baseUnitCost: 28.50, uom: 'BX' }, { desc: 'Geocel 2300 Clear Sealant', baseUnitCost: 8.95, uom: 'EA' } ] }, { id: 'iko_nordic_per_square', name: 'IKO Nordic Per Square', category: 'Roofing', brand: 'IKO', description: [ "Remove existing shingles down to deck.", "Re-nail any loose wood.", "Install IKO ArmourGard ice and water shield.", "Install IKO RoofGard-SB Synthetic underlayment.", "Install IKO Nordic Architectural Shingles (priced per square)." ], materials: [ { desc: 'IKO Nordic', baseUnitCost: 40.00, uom: 'SQ' }, { desc: 'IKO Hip & Ridge 12', baseUnitCost: 80.00, uom: 'BD' }, { desc: 'IKO Leading Edge Plus Starter Strip', baseUnitCost: 71.00, uom: 'BD' }, { desc: 'IKO RoofGard-SB Synthetic Underlayment', baseUnitCost: 118.00, uom: 'RL' }, { desc: 'IKO ArmourGard Ice & Water', baseUnitCost: 67.00, uom: 'RL' }, { desc: 'Coil Nails 1 1/4"', baseUnitCost: 35.00, uom: 'BX' }, { desc: 'Plastic Cap Nails', baseUnitCost: 28.50, uom: 'BX' }, { desc: 'Geocel 2300 Clear Sealant', baseUnitCost: 8.95, uom: 'EA' } ] }, { id: 'malarkey_vista_ar', name: 'Malarkey Vista AR', category: 'Roofing', brand: 'Malarkey', description: [ "Remove existing shingles down to deck.", "Re-nail any loose wood.", "Install Malarkey EverGuard ice and water shield at eaves and valleys.", "Install Malarkey UDL 40 Synthetic underlayment.", "Install Malarkey Vista AR Architectural Shingles." ], materials: [ { desc: 'Malarkey Vista AR', baseUnitCost: 46.00, uom: 'SQ' }, { desc: 'Malarkey Ridglass Hip & Ridge', baseUnitCost: 83.00, uom: 'BD' }, { desc: 'Malarkey Windsor Starter Strip', baseUnitCost: 73.00, uom: 'BD' }, { desc: 'Malarkey UDL 40 Synthetic Underlayment', baseUnitCost: 122.00, uom: 'RL' }, { desc: 'Malarkey EverGuard Ice & Water', baseUnitCost: 69.00, uom: 'RL' }, { desc: 'Coil Nails 1 1/4"', baseUnitCost: 35.00, uom: 'BX' }, { desc: 'Plastic Cap Nails', baseUnitCost: 28.50, uom: 'BX' }, { desc: 'Geocel 2300 Clear Sealant', baseUnitCost: 8.95, uom: 'EA' } ] }, { id: 'mulehide_epdm', name: 'Mulehide .060 EPDM System', category: 'Roofing', brand: 'Mulehide', description: [ "Remove existing flat roof membrane down to deck.", "Inspect and repair decking as needed.", "Install Mulehide .060 EPDM membrane fully adhered system.", "Install Mulehide bonding adhesive.", "Install drip edge and termination bars at perimeter." ], materials: [ { desc: 'Mulehide .060 EPDM Membrane', baseUnitCost: 85.00, uom: 'SQ' }, { desc: 'Mulehide Bonding Adhesive', baseUnitCost: 48.00, uom: 'EA' }, { desc: 'Mulehide EPDM Lap Sealant', baseUnitCost: 12.00, uom: 'EA' }, { desc: 'Mulehide Termination Bar', baseUnitCost: 4.50, uom: 'LF' }, { desc: 'Coil Nails 1 1/4"', baseUnitCost: 35.00, uom: 'BX' }, { desc: 'Geocel 2300 Clear Sealant', baseUnitCost: 8.95, uom: 'EA' } ] }, { id: 'owens_corning_duration', name: 'Owens Corning Duration', category: 'Roofing', brand: 'Owens Corning', description: [ "Remove existing shingles down to deck.", "Inspect and re-nail decking.", "Install Owens Corning WeatherLock G ice and water shield.", "Install Owens Corning ProArmor Synthetic underlayment.", "Install Owens Corning TruDefinition Duration Shingles." ], materials: [ { desc: 'OC TruDefinition Duration', baseUnitCost: 46.50, uom: 'SQ' }, { desc: 'OC ProEdge Hip & Ridge', baseUnitCost: 88.00, uom: 'BD' }, { desc: 'OC Starter Strip Plus', baseUnitCost: 78.00, uom: 'BD' }, { desc: 'OC ProArmor Underlayment', baseUnitCost: 130.00, uom: 'RL' }, { desc: 'OC WeatherLock G', baseUnitCost: 75.00, uom: 'RL' }, { desc: 'Coil Nails 1 1/4"', baseUnitCost: 35.00, uom: 'BX' }, { desc: 'Plastic Cap Nails', baseUnitCost: 28.50, uom: 'BX' }, { desc: 'Geocel 2300 Clear Sealant', baseUnitCost: 8.95, uom: 'EA' } ] }, { id: 'owens_corning_duration_srs', name: 'Owens Corning Duration - SRS', category: 'Roofing', brand: 'SRS', description: [ "Remove existing shingles down to deck.", "Inspect and re-nail decking.", "Install Owens Corning WeatherLock G ice and water shield.", "Install Owens Corning ProArmor Synthetic underlayment.", "Install Owens Corning TruDefinition Duration Shingles (SRS distribution)." ], materials: [ { desc: 'OC TruDefinition Duration', baseUnitCost: 46.50, uom: 'SQ' }, { desc: 'OC ProEdge Hip & Ridge', baseUnitCost: 88.00, uom: 'BD' }, { desc: 'OC Starter Strip Plus', baseUnitCost: 78.00, uom: 'BD' }, { desc: 'OC ProArmor Underlayment', baseUnitCost: 130.00, uom: 'RL' }, { desc: 'OC WeatherLock G', baseUnitCost: 75.00, uom: 'RL' }, { desc: 'Coil Nails 1 1/4"', baseUnitCost: 35.00, uom: 'BX' }, { desc: 'Plastic Cap Nails', baseUnitCost: 28.50, uom: 'BX' }, { desc: 'Geocel 2300 Clear Sealant', baseUnitCost: 8.95, uom: 'EA' } ] }, { id: 'owens_corning_oakridge', name: 'Owens Corning Oakridge', category: 'Roofing', brand: 'Owens Corning', description: [ "Remove existing shingles down to deck.", "Inspect and re-nail decking.", "Install Owens Corning WeatherLock G ice and water shield.", "Install Owens Corning ProArmor Synthetic underlayment.", "Install Owens Corning Oakridge Architectural Shingles." ], materials: [ { desc: 'OC Oakridge', baseUnitCost: 38.00, uom: 'SQ' }, { desc: 'OC ProEdge Hip & Ridge', baseUnitCost: 88.00, uom: 'BD' }, { desc: 'OC Starter Strip Plus', baseUnitCost: 78.00, uom: 'BD' }, { desc: 'OC ProArmor Underlayment', baseUnitCost: 130.00, uom: 'RL' }, { desc: 'OC WeatherLock G', baseUnitCost: 75.00, uom: 'RL' }, { desc: 'Coil Nails 1 1/4"', baseUnitCost: 35.00, uom: 'BX' }, { desc: 'Plastic Cap Nails', baseUnitCost: 28.50, uom: 'BX' }, { desc: 'Geocel 2300 Clear Sealant', baseUnitCost: 8.95, uom: 'EA' } ] } ]; export default function TemplateSelectionModal({ isOpen, onClose, onSelectTemplate }) { const { templates } = useMockStore(); const [searchTerm, setSearchTerm] = useState(''); const [selected, setSelected] = useState(null); const filtered = templates.filter(t => t.name.toLowerCase().includes(searchTerm.toLowerCase()) || t.category.toLowerCase().includes(searchTerm.toLowerCase()) ); const handleNext = () => { if (selected) { onSelectTemplate(selected); } }; if (!isOpen) return null; return (
e.stopPropagation()} > {/* Header */}

Select a Template

Choose a base template to calculate your item quantities.

{/* Search Bar */}
setSearchTerm(e.target.value)} placeholder="Search for a Template..." className="w-full bg-white dark:bg-zinc-800 border border-zinc-200 dark:border-zinc-700 rounded-lg px-4 py-2.5 text-sm outline-none focus:ring-2 focus:ring-blue-500 transition-shadow text-zinc-800 dark:text-zinc-200" />
{/* Templates List */}
{/* Category Header */}

Templates ({filtered.length})

{/* List items */}
{filtered.map((template) => { const isSelected = selected?.id === template.id; return ( ); })} {filtered.length === 0 && (
No templates match your search.
)}
{/* Footer */}
); }