|
119 | 119 | } |
120 | 120 | ]; |
121 | 121 | |
122 | | - let vaults = [ |
123 | | - { id: 'vault-1', name: 'Personal Documents', sublabel: 'Important files' }, |
124 | | - { id: 'vault-2', name: 'Family Photos', sublabel: 'Cherished memories' }, |
125 | | - { id: 'vault-3', name: 'Work Projects', sublabel: 'Current tasks and files' }, |
126 | | - { id: 'vault-4', name: 'Archived Data', sublabel: 'Old projects and backups' }, |
127 | | - ]; |
| 122 | + let availableVaults = $state([ // Renamed to clarify its purpose |
| 123 | + { |
| 124 | + id: '5', |
| 125 | + position: { x: 950, y: 350 }, |
| 126 | + data: { label: 'personal', subLabel: 'Personal.vault.dev' }, |
| 127 | + type: 'vault', |
| 128 | + }, |
| 129 | + { |
| 130 | + id: '6', |
| 131 | + position: { x: 1150, y: 550 }, |
| 132 | + data: { label: 'Another', subLabel: 'Another.vault.dev' }, |
| 133 | + type: 'vault', |
| 134 | + } |
| 135 | + ]); |
| 136 | +
|
| 137 | + function addVaultsToFlow() { |
| 138 | + const vaultsToAdd = availableVaults.filter(vault => selectedVaults.includes(vault.id)); |
| 139 | + nodes = [...nodes, ...vaultsToAdd]; |
| 140 | +
|
| 141 | + availableVaults = availableVaults.filter(vault => !selectedVaults.includes(vault.id)); |
| 142 | + selectedVaults = []; |
| 143 | + isModalOpen = false; |
| 144 | + } |
128 | 145 | |
129 | 146 | onMount(async () => { |
130 | 147 | const mod = await import('@xyflow/svelte'); |
|
173 | 190 | <input type="search" value="" placeholder="Please search vaults to add" class="w-full border-transparent outline-transparent bg-gray rounded-4xl py-3 px-4 font-geist placeholder:font-geist placeholder:text-gray-600 text-black text-base"> |
174 | 191 |
|
175 | 192 | <ul class="mt-4"> |
176 | | - {#each vaults as vault (vault.id)} |
| 193 | + {#each availableVaults as vault (vault.id)} |
177 | 194 | <li class="flex items-center gap-4 px-4 py-1 mb-2 rounded-2xl bg-gray hover:bg-gray-200"> |
178 | 195 | <input id={vault.id} type="checkbox" value={vault.id} bind:group={selectedVaults}> |
179 | 196 |
|
180 | 197 | <label for={vault.id} class="cursor-pointer inline-block w-full"> |
181 | | - <p>{vault.name}</p> |
182 | | - <p class="small">{vault.sublabel}</p> |
| 198 | + <p>{vault.data.label}</p> |
| 199 | + <p class="small">{vault.data.subLabel}</p> |
183 | 200 | </label> |
184 | 201 | </li> |
185 | 202 | {/each} |
186 | 203 | </ul> |
187 | | - <ButtonAction variant="solid" size="sm" class="w-full mt-4" callback={() => alert("added")}>Add Voults</ButtonAction> |
| 204 | + <ButtonAction variant="solid" size="sm" class="w-full mt-4" callback={addVaultsToFlow}>Add Voults</ButtonAction> |
188 | 205 | </Modal> |
189 | 206 |
|
190 | 207 | <style> |
|
0 commit comments