mirror of https://github.com/nocodb/nocodb
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.9 KiB
57 lines
1.9 KiB
<script lang="ts" setup> |
|
// todo: Remove this "Provider" component and use the "EditOrAdd" component directly |
|
import type { ColumnReqType, ColumnType } from 'nocodb-sdk' |
|
|
|
interface Props { |
|
column?: ColumnType |
|
columnPosition?: Pick<ColumnReqType, 'column_order'> |
|
preload?: Partial<ColumnType> |
|
tableExplorerColumns?: ColumnType[] |
|
editDescription?: boolean |
|
fromTableExplorer?: boolean |
|
isColumnValid?: (value: Partial<ColumnType>) => boolean |
|
disableTitleFocus?: boolean |
|
} |
|
|
|
const props = defineProps<Props>() |
|
|
|
const emit = defineEmits(['submit', 'cancel', 'mounted']) |
|
|
|
const meta = inject(MetaInj, ref()) |
|
|
|
const { column, preload, tableExplorerColumns, fromTableExplorer, isColumnValid, editDescription } = toRefs(props) |
|
|
|
useProvideColumnCreateStore(meta, column, tableExplorerColumns, fromTableExplorer, isColumnValid) |
|
|
|
const { isWebhookCreateModalOpen, isAiButtonConfigModalOpen } = useColumnCreateStoreOrThrow() |
|
|
|
/** |
|
* Determines whether the root dropdown should remain open. |
|
* |
|
* This function prevents the root dropdown from closing when certain modals are open. |
|
* The current implementation checks if either the Webhook Create Modal or the AI Button Config Modal |
|
* is active, but developers can extend this logic to include more modals as needed. |
|
* |
|
* @returns {boolean} - Returns `true` if any of the specified modals (e.g., Webhook Create Modal, AI Button Config Modal) are open, otherwise `false`. |
|
*/ |
|
const shouldKeepModalOpen = (): boolean => { |
|
return isWebhookCreateModalOpen.value || isAiButtonConfigModalOpen.value |
|
} |
|
|
|
defineExpose({ |
|
shouldKeepModalOpen, |
|
}) |
|
</script> |
|
|
|
<template> |
|
<SmartsheetColumnEditOrAdd |
|
:preload="preload" |
|
:column-position="props.columnPosition" |
|
:edit-description="editDescription" |
|
:from-table-explorer="props.fromTableExplorer || false" |
|
:disable-title-focus="disableTitleFocus" |
|
@submit="emit('submit')" |
|
@cancel="emit('cancel')" |
|
@mounted="emit('mounted')" |
|
/> |
|
</template>
|
|
|