Browse Source

refactor(gui-v2): convert to reactive

Signed-off-by: Pranav C <pranavxc@gmail.com>
pull/3005/head
Pranav C 2 years ago
parent
commit
f7dffa5012
  1. 6
      packages/nc-gui-v2/components/smartsheet-header/CellIcon.vue
  2. 2
      packages/nc-gui-v2/components/smartsheet/Cell.vue
  3. 11
      packages/nc-gui-v2/composables/useColumn.ts
  4. 4
      packages/nc-gui-v2/composables/useColumnCreateStore.ts

6
packages/nc-gui-v2/components/smartsheet-header/CellIcon.vue

@ -1,6 +1,6 @@
<script setup lang="ts"> <script setup lang="ts">
import type { ColumnType } from 'nocodb-sdk' import type { ColumnType } from 'nocodb-sdk'
import { toRef } from 'vue' import { Ref, toRef } from 'vue'
import { ColumnInj } from '~/context' import { ColumnInj } from '~/context'
import FilePhoneIcon from '~icons/mdi/file-phone' import FilePhoneIcon from '~icons/mdi/file-phone'
import { useColumn } from '#imports' import { useColumn } from '#imports'
@ -28,9 +28,9 @@ import DecimalIcon from '~icons/mdi/decimal'
const props = defineProps<{ columnMeta?: ColumnType }>() const props = defineProps<{ columnMeta?: ColumnType }>()
const columnMeta = toRef(props, 'columnMeta') const columnMeta = toRef(props, 'columnMeta')
const column = inject(ColumnInj, ref(columnMeta)) const column = inject(ColumnInj, columnMeta)
const additionalColMeta = useColumn(column.value as ColumnType) const additionalColMeta = useColumn(column as Ref<ColumnType>)
const icon = computed(() => { const icon = computed(() => {
if (column?.value?.pk) { if (column?.value?.pk) {

2
packages/nc-gui-v2/components/smartsheet/Cell.vue

@ -89,7 +89,7 @@ const {
isMultiSelect, isMultiSelect,
isPercent, isPercent,
isPhoneNumber, isPhoneNumber,
} = useColumn(column?.value) } = useColumn(column)
const syncAndNavigate = (dir: NavigateDir) => { const syncAndNavigate = (dir: NavigateDir) => {
if (changed) { if (changed) {

11
packages/nc-gui-v2/composables/useColumn.ts

@ -1,16 +1,17 @@
import type { ColumnType } from 'nocodb-sdk' import type { ColumnType } from 'nocodb-sdk'
import { SqlUiFactory, UITypes, isVirtualCol } from 'nocodb-sdk' import { SqlUiFactory, UITypes, isVirtualCol } from 'nocodb-sdk'
import { useProject } from '#imports' import { useProject } from '#imports'
import { Ref } from 'vue'
export function useColumn(column: ColumnType) { export function useColumn(column: Ref<ColumnType>) {
const { project } = useProject() const { project } = useProject()
const uiDatatype: UITypes = (column && column.uidt) as UITypes const uiDatatype: UITypes = (column?.value?.uidt) as UITypes
const abstractType = isVirtualCol(column) const abstractType = isVirtualCol(column?.value)
? null ? null
: SqlUiFactory.create(project.value?.bases?.[0]?.config || { client: 'mysql2' }).getAbstractType(column) : SqlUiFactory.create(project.value?.bases?.[0]?.config || { client: 'mysql2' }).getAbstractType(column?.value)
const dataTypeLow = column && column.dt && column.dt.toLowerCase() const dataTypeLow = column?.value?.dt?.toLowerCase()
const isBoolean = abstractType === 'boolean' const isBoolean = abstractType === 'boolean'
const isString = abstractType === 'string' const isString = abstractType === 'string'
const isTextArea = uiDatatype === UITypes.LongText const isTextArea = uiDatatype === UITypes.LongText

4
packages/nc-gui-v2/composables/useColumnCreateStore.ts

@ -91,7 +91,7 @@ const [useProvideColumnCreateStore, useColumnCreateStore] = createInjectionState
} }
const onUidtOrIdTypeChange = () => { const onUidtOrIdTypeChange = () => {
const { isCurrency } = useColumn(formState.value as ColumnType) const { isCurrency } = useColumn(ref(formState.value as ColumnType))
const colProp = sqlUi?.value.getDataTypeForUiType(formState?.value as any, idType as any) const colProp = sqlUi?.value.getDataTypeForUiType(formState?.value as any, idType as any)
formState.value = { formState.value = {
@ -134,7 +134,7 @@ const [useProvideColumnCreateStore, useColumnCreateStore] = createInjectionState
} }
const onDataTypeChange = () => { const onDataTypeChange = () => {
const { isCurrency } = useColumn(formState.value as ColumnType) const { isCurrency } = useColumn(ref(formState.value as ColumnType))
formState.value.rqd = false formState.value.rqd = false
if (formState.value.uidt !== UITypes.ID) { if (formState.value.uidt !== UITypes.ID) {

Loading…
Cancel
Save