Skip to content
This repository was archived by the owner on Aug 5, 2025. It is now read-only.

Commit 82378b4

Browse files
committed
feat: improve secrets dialog #2
Signed-off-by: seven <[email protected]>
1 parent aa5d534 commit 82378b4

File tree

2 files changed

+21
-28
lines changed

2 files changed

+21
-28
lines changed

src/views/secret/components/key-list.vue

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,16 @@ const { secrets } = toRefs(secretStore);
1313
</script>
1414

1515
<style lang="scss" scoped>
16+
.secret-list {
17+
display: flex;
18+
flex-wrap: wrap;
19+
gap: 16px;
20+
padding: 16px;
21+
}
22+
.secret-list .n-card:hover {
23+
cursor: pointer;
24+
}
25+
1626
.n-card {
1727
max-width: 300px;
1828
}

src/views/secret/components/new-key-dialog.vue

Lines changed: 11 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
<template>
2-
<n-modal v-model:show="showModal">
2+
<n-modal v-model:show="showModal" @esc="closeModal" @mask-click="closeModal">
33
<n-card
44
style="width: 600px"
55
role="dialog"
66
aria-modal="true"
77
:title="modalTitle"
88
:bordered="false"
99
class="secret-modal-card"
10-
@mask-click="closeModal"
1110
>
1211
<template #header-extra>
1312
<n-icon size="26" @click="closeModal">
@@ -16,7 +15,7 @@
1615
</template>
1716
<div class="modal-content">
1817
<n-form
19-
ref="connectFormRef"
18+
ref="secretFormRef"
2019
label-placement="left"
2120
label-width="100"
2221
:model="formData"
@@ -31,7 +30,7 @@
3130
</n-grid>
3231
</n-form>
3332
</div>
34-
<n-tabs type="line" animated>
33+
<n-tabs type="line" animated class="secret-tabs">
3534
<n-tab-pane name="sshKeys" tab="SSH Keys">
3635
<n-grid cols="8" item-responsive responsive="screen" x-gap="10" y-gap="10">
3736
<n-grid-item span="8">
@@ -115,7 +114,7 @@ const { saveSecret } = secretStore;
115114
116115
const lang = useLang();
117116
// DOM
118-
const connectFormRef = ref();
117+
const secretFormRef = ref();
119118
120119
const showModal = ref(false);
121120
const modalTitle = ref(lang.t('secret.new'));
@@ -151,39 +150,20 @@ const showMedal = (secret: Secret | null) => {
151150
};
152151
153152
const closeModal = () => {
154-
if (formData.value) {
155-
formData.value = defaultFormData;
156-
}
153+
formData.value = defaultFormData;
157154
showModal.value = false;
158155
};
159156
160157
const validationPassed = watch(formData.value, async () => {
161158
try {
162-
return await connectFormRef.value?.validate((errors: Array<FormValidationError>) => !errors);
159+
return await secretFormRef.value?.validate((errors: Array<FormValidationError>) => !errors);
163160
} catch (e) {
164161
return false;
165162
}
166163
});
167164
168-
// const verify = async (event: MouseEvent) => {
169-
// event.preventDefault();
170-
// testLoading.value = !testLoading.value;
171-
// try {
172-
// // @TODO: verify secret
173-
// // await testConnection({ ...formData.value });
174-
// message.success(lang.t('connection.testSuccess'));
175-
// } catch (e) {
176-
// const error = e as CustomError;
177-
// message.error(`status: ${error.status}, details: ${error.details}`, {
178-
// closable: true,
179-
// keepAliveOnHover: true,
180-
// duration: 10000,
181-
// });
182-
// } finally {
183-
// testLoading.value = !testLoading.value;
184-
// }
185-
// };
186-
//
165+
// @TODO: verify secret
166+
187167
const submitSaveSecret = async (event: MouseEvent) => {
188168
event.preventDefault();
189169
saveLoading.value = !saveLoading.value;
@@ -201,6 +181,9 @@ defineExpose({ showMedal });
201181
cursor: pointer;
202182
}
203183
}
184+
.secret-tabs {
185+
min-height: 320px;
186+
}
204187
.n-card__footer {
205188
.card-footer {
206189
display: flex;

0 commit comments

Comments
 (0)