|
6 | 6 | import { isBusy } from '$lib/derived/app/busy.derived'; |
7 | 7 | import { authIdentity } from '$lib/derived/auth.derived'; |
8 | 8 | import { missionControlId } from '$lib/derived/console/account.mission-control.derived'; |
9 | | - import { setSatelliteMetadata } from '$lib/services/metadata.services'; |
| 9 | + import type { SetMetadataParams, SetMetadataResult } from '$lib/services/metadata.services'; |
10 | 10 | import { busy } from '$lib/stores/app/busy.store'; |
11 | 11 | import { i18n } from '$lib/stores/app/i18n.store'; |
12 | 12 | import { toasts } from '$lib/stores/app/toasts.store'; |
13 | 13 | import type { MetadataUiTags } from '$lib/types/metadata'; |
14 | | - import type { Satellite } from '$lib/types/satellite'; |
| 14 | + import type { SegmentWithMetadata } from '$lib/types/segment'; |
15 | 15 | import { |
16 | 16 | metadataUiEnvironment, |
17 | 17 | metadataUiName, |
18 | 18 | metadataUiTags |
19 | 19 | } from '$lib/utils/metadata-ui.utils'; |
20 | 20 |
|
21 | 21 | interface Props { |
22 | | - satellite: Satellite; |
| 22 | + segment: SegmentWithMetadata; |
| 23 | + updateMetadata: (params: SetMetadataParams) => Promise<SetMetadataResult>; |
23 | 24 | } |
24 | 25 |
|
25 | | - let { satellite }: Props = $props(); |
| 26 | + let { segment, updateMetadata }: Props = $props(); |
26 | 27 |
|
27 | 28 | // svelte-ignore state_referenced_locally |
28 | | - let satName = $state(metadataUiName(satellite)); |
| 29 | + let segmentName = $state(metadataUiName(segment)); |
29 | 30 | // svelte-ignore state_referenced_locally |
30 | | - let satEnv = $state<string | undefined>(metadataUiEnvironment(satellite)); |
| 31 | + let segmentEnv = $state<string | undefined>(metadataUiEnvironment(segment)); |
31 | 32 |
|
32 | 33 | // svelte-ignore state_referenced_locally |
33 | | - let satTagsInput = $state(metadataUiTags(satellite)?.join(',') ?? ''); |
34 | | - let satTags = $derived<MetadataUiTags>( |
35 | | - satTagsInput |
| 34 | + let segmentTagsInput = $state(metadataUiTags(segment)?.join(',') ?? ''); |
| 35 | + let segmentTags = $derived<MetadataUiTags>( |
| 36 | + segmentTagsInput |
36 | 37 | .split(/[\n,]+/) |
37 | 38 | .map((input) => input.toLowerCase().trim()) |
38 | 39 | .filter(notEmptyString) |
39 | 40 | ); |
40 | 41 |
|
41 | | - let visible: boolean = $state(false); |
| 42 | + let visible = $state(false); |
42 | 43 |
|
43 | | - let validConfirm = $derived(nonNullish(satName) && satName !== ''); |
| 44 | + let validConfirm = $derived(nonNullish(segmentName) && segmentName !== ''); |
44 | 45 |
|
45 | 46 | const handleSubmit = async ($event: SubmitEvent) => { |
46 | 47 | $event.preventDefault(); |
47 | 48 |
|
48 | 49 | if (!validConfirm) { |
49 | 50 | // Submit is disabled if not valid |
50 | 51 | toasts.error({ |
51 | | - text: $i18n.errors.satellite_name_missing |
| 52 | + text: $i18n.errors.segment_name_missing |
52 | 53 | }); |
53 | 54 | return; |
54 | 55 | } |
55 | 56 |
|
56 | 57 | busy.start(); |
57 | 58 |
|
58 | | - const { success } = await setSatelliteMetadata({ |
| 59 | + const { success } = await updateMetadata({ |
59 | 60 | missionControlId: $missionControlId, |
60 | 61 | identity: $authIdentity, |
61 | | - satellite, |
62 | 62 | metadata: { |
63 | | - name: satName, |
64 | | - environment: satEnv, |
65 | | - tags: satTags |
| 63 | + name: segmentName, |
| 64 | + environment: segmentEnv, |
| 65 | + tags: segmentTags |
66 | 66 | } |
67 | 67 | }); |
68 | 68 |
|
|
80 | 80 | }; |
81 | 81 | </script> |
82 | 82 |
|
83 | | -<button class="menu" onclick={open}><IconEdit /> {$i18n.satellites.edit_details}</button> |
| 83 | +<button class="menu" onclick={open}><IconEdit /> {$i18n.core.edit_details}</button> |
84 | 84 |
|
85 | 85 | <Popover backdrop="dark" center bind:visible> |
86 | 86 | <form class="container" onsubmit={handleSubmit}> |
87 | | - <Value ref="satelliteName"> |
| 87 | + <Value ref="segmentName"> |
88 | 88 | {#snippet label()} |
89 | | - {$i18n.satellites.satellite_name} |
| 89 | + {$i18n.core.name} |
90 | 90 | {/snippet} |
91 | 91 |
|
92 | 92 | <input |
93 | | - id="satelliteName" |
| 93 | + id="segmentName" |
94 | 94 | autocomplete="off" |
95 | 95 | data-1p-ignore |
96 | 96 | disabled={$isBusy} |
97 | 97 | maxlength={64} |
98 | | - placeholder={$i18n.satellites.edit_details} |
| 98 | + placeholder={$i18n.core.edit_details} |
99 | 99 | type="text" |
100 | | - bind:value={satName} |
| 100 | + bind:value={segmentName} |
101 | 101 | /> |
102 | 102 | </Value> |
103 | 103 |
|
104 | | - <Value ref="satelliteEnv"> |
| 104 | + <Value ref="segmentEnv"> |
105 | 105 | {#snippet label()} |
106 | 106 | {$i18n.core.environment} |
107 | 107 | {/snippet} |
108 | 108 |
|
109 | | - <select id="satelliteEnv" disabled={$isBusy} bind:value={satEnv}> |
| 109 | + <select id="segmentEnv" disabled={$isBusy} bind:value={segmentEnv}> |
110 | 110 | <option value={undefined}>{$i18n.core.unspecified}</option> |
111 | 111 | <option value="production"> {$i18n.core.production} </option> |
112 | 112 | <option value="staging"> {$i18n.core.staging} </option> |
113 | 113 | <option value="test"> {$i18n.core.test} </option> |
114 | 114 | </select> |
115 | 115 | </Value> |
116 | 116 |
|
117 | | - <Value ref="satelliteTags"> |
| 117 | + <Value ref="segmentTags"> |
118 | 118 | {#snippet label()} |
119 | 119 | {$i18n.core.tags} |
120 | 120 | {/snippet} |
121 | 121 |
|
122 | | - <textarea placeholder={$i18n.core.tags_placeholder} rows="5" bind:value={satTagsInput} |
| 122 | + <textarea placeholder={$i18n.core.tags_placeholder} rows="5" bind:value={segmentTagsInput} |
123 | 123 | ></textarea> |
124 | 124 | </Value> |
125 | 125 |
|
|
0 commit comments