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