mirror of https://github.com/nocodb/nocodb
Pranav C
2 years ago
9 changed files with 112 additions and 38 deletions
@ -0,0 +1,26 @@ |
|||||||
|
<script lang="ts" setup> |
||||||
|
import { Icon as IcIcon } from '@iconify/vue' |
||||||
|
import type { TableType } from 'nocodb-sdk' |
||||||
|
import { viewIcons } from '#imports' |
||||||
|
|
||||||
|
const { meta: viewMeta } = defineProps<{ |
||||||
|
meta: TableType |
||||||
|
}>() |
||||||
|
</script> |
||||||
|
|
||||||
|
<template> |
||||||
|
<IcIcon |
||||||
|
v-if="viewMeta?.meta?.icon" |
||||||
|
:data-testid="`nc-icon-${viewMeta?.meta?.icon}`" |
||||||
|
class="text-[16px]" |
||||||
|
:icon="viewMeta?.meta?.icon" |
||||||
|
></IcIcon> |
||||||
|
<component |
||||||
|
:is="viewIcons[viewMeta.type]?.icon" |
||||||
|
v-else |
||||||
|
class="nc-view-icon group-hover" |
||||||
|
:style="{ color: viewIcons[viewMeta.type]?.color }" |
||||||
|
/> |
||||||
|
</template> |
||||||
|
|
||||||
|
<style scoped></style> |
@ -0,0 +1,33 @@ |
|||||||
|
export function parseMetaProp(modelOrModelList: { meta: any } | { meta: any }[]) { |
||||||
|
if (!modelOrModelList) return |
||||||
|
|
||||||
|
// parse meta property
|
||||||
|
for (const model of Array.isArray(modelOrModelList) |
||||||
|
? modelOrModelList |
||||||
|
: [modelOrModelList]) { |
||||||
|
try { |
||||||
|
model.meta = |
||||||
|
typeof model.meta === 'string' ? JSON.parse(model.meta) : model.meta |
||||||
|
} catch { |
||||||
|
model.meta = {} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
export function stringifyMetaProp( |
||||||
|
modelOrModelList: { meta?: any } | { meta?: any }[], |
||||||
|
) { |
||||||
|
if (!modelOrModelList) return |
||||||
|
|
||||||
|
// parse meta property
|
||||||
|
for (const model of Array.isArray(modelOrModelList) |
||||||
|
? modelOrModelList |
||||||
|
: [modelOrModelList]) { |
||||||
|
try { |
||||||
|
model.meta = |
||||||
|
typeof model.meta !== 'string' ? model.meta : JSON.parse(model.meta) |
||||||
|
} catch (e) { |
||||||
|
model.meta = '{}' |
||||||
|
} |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue