Browse Source

refactor: minor improvements

pull/9314/head
Pranav C 3 months ago
parent
commit
04d9237192
  1. 42
      packages/nc-gui/components/account/setup/ConfigModal.vue
  2. 6
      packages/nc-gui/components/nc/Modal.vue

42
packages/nc-gui/components/account/setup/ConfigModal.vue

@ -1,5 +1,5 @@
<script setup lang="ts"> <script setup lang="ts">
import { Action } from '../../../composables/useAccountSetupStore' import {Action} from '../../../composables/useAccountSetupStore'
const props = defineProps<{ const props = defineProps<{
id: string id: string
@ -29,7 +29,7 @@ const pluginTypeMap = {
Password: FormBuilderInputType.Password, Password: FormBuilderInputType.Password,
} }
const { formState, validate } = useProvideFormBuilderHelper({ const {formState, validate} = useProvideFormBuilderHelper({
formSchema: [ formSchema: [
...plugin.value.formDetails.items.map((item) => ({ ...plugin.value.formDetails.items.map((item) => ({
type: pluginTypeMap[item.type] || FormBuilderInputType.Input, type: pluginTypeMap[item.type] || FormBuilderInputType.Input,
@ -50,6 +50,7 @@ const doAction = async (action: Action) => {
await validate() await validate()
pluginFormData.value = formState.value pluginFormData.value = formState.value
await saveSettings() await saveSettings()
vOpen.value = false
break break
case Action.Test: case Action.Test:
await validate() await validate()
@ -66,43 +67,44 @@ const doAction = async (action: Action) => {
</script> </script>
<template> <template>
<NcModal :visible="vOpen" centered width="70rem" wrap-class-name="nc-modal-create-source" @keydown.esc="vOpen = false"> <NcModal :visible="vOpen" centered width="70rem" wrap-class-name="nc-modal-create-source"
@keydown.esc="vOpen = false">
<div class="flex-1 flex flex-col max-h-full min-h-400px"> <div class="flex-1 flex flex-col max-h-full min-h-400px">
<div class="px-4 pb-4 w-full flex items-center gap-3 border-b-1 border-gray-200"> <div class="px-4 pb-4 w-full flex items-center gap-3 border-b-1 border-gray-200">
<GeneralIcon icon="arrowLeft" class="cursor-pointer flex-none text-[20px]" @click="vOpen = false" /> <GeneralIcon icon="arrowLeft" class="cursor-pointer flex-none text-[20px]" @click="vOpen = false"/>
<div <div
v-if="plugin.logo" v-if="plugin.logo"
class="mr-1 flex items-center justify-center" class="mr-1 flex items-center justify-center"
:class="[plugin.title === 'SES' ? 'p-2 bg-[#242f3e]' : '']" :class="[plugin.title === 'SES' ? 'p-2 bg-[#242f3e]' : '']"
> >
<img :alt="plugin.title || 'plugin'" :src="plugin.logo" class="h-3" /> <img :alt="plugin.title || 'plugin'" :src="plugin.logo" class="h-3"/>
</div> </div>
<span class="font-semibold text-lg">{{ plugin.formDetails.title }}</span> <span class="font-semibold text-lg">{{ plugin.formDetails.title }}</span>
<div class="flex-grow" /> <div class="flex-grow"/>
<div class="flex gap-2"> <div class="flex gap-2">
<NcButton <NcButton
v-for="(action, i) in plugin.formDetails.actions" v-for="(action, i) in plugin.formDetails.actions"
:key="i" :key="i"
class="!px-5" class="!px-5"
:loading="loadingAction === action.key" :loading="loadingAction === action.key"
:type="action.key === Action.Save ? 'primary' : 'default'" :type="action.key === Action.Save ? 'primary' : 'default'"
size="small" size="small"
:disabled="!!loadingAction" :disabled="!!loadingAction"
@click="doAction(action.key)" @click="doAction(action.key)"
> >
{{ action.label }} {{ action.label === 'Save' ? 'Save configuration' : action.label }}
</NcButton> </NcButton>
</div> </div>
</div> </div>
<div class="h-[calc(100%_-_58px)] flex py-4 flex-col"> <div class="h-[calc(100%_-_58px)] flex py-4 flex-col">
<div v-if="isLoading || !plugin" class="flex flex-row w-full justify-center items-center h-52"> <div v-if="isLoading || !plugin" class="flex flex-row w-full justify-center items-center h-52">
<a-spin size="large" /> <a-spin size="large"/>
</div> </div>
<div v-else class="flex"> <div v-else class="flex">
<NcFormBuilder class="w-500px mx-auto" /> <NcFormBuilder class="w-500px mx-auto"/>
</div> </div>
</div> </div>
</div> </div>

6
packages/nc-gui/components/nc/Modal.vue

@ -1,6 +1,4 @@
<script lang="ts" setup> <script lang="ts" setup>
import {Action} from "../../composables/useAccountSetupStore";
const props = withDefaults( const props = withDefaults(
defineProps<{ defineProps<{
visible: boolean visible: boolean
@ -10,6 +8,7 @@ const props = withDefaults(
maskClosable?: boolean maskClosable?: boolean
showSeparator?: boolean showSeparator?: boolean
wrapClassName?: string wrapClassName?: string
closable?: boolean
}>(), }>(),
{ {
size: 'medium', size: 'medium',
@ -17,6 +16,7 @@ const props = withDefaults(
maskClosable: true, maskClosable: true,
showSeparator: true, showSeparator: true,
wrapClassName: '', wrapClassName: '',
closable: false,
}, },
) )
@ -91,7 +91,7 @@ const slots = useSlots()
:class="{ active: visible }" :class="{ active: visible }"
:width="width" :width="width"
:centered="true" :centered="true"
:closable="false" :closable="closable"
:wrap-class-name="newWrapClassName" :wrap-class-name="newWrapClassName"
:footer="null" :footer="null"
:mask-closable="maskClosable" :mask-closable="maskClosable"

Loading…
Cancel
Save