Browse Source

Merge pull request #6484 from nocodb/fix/def

fix: color picker realtime update
pull/6507/head
Raju Udava 1 year ago committed by GitHub
parent
commit
c1d8000649
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 14
      packages/nc-gui/components/general/ColorPicker.vue
  2. 5
      packages/nc-gui/components/smartsheet/column/SelectOptions.vue

14
packages/nc-gui/components/general/ColorPicker.vue

@ -17,21 +17,23 @@ const props = withDefaults(defineProps<Props>(), {
pickButton: false, pickButton: false,
}) })
const emit = defineEmits(['update:modelValue', 'input']) const emit = defineEmits(['input', 'closeModal'])
const vModel = computed({ const vModel = computed({
get: () => props.modelValue, get: () => props.modelValue,
set: (val) => { set: (val) => {
emit('update:modelValue', val || null)
emit('input', val || null) emit('input', val || null)
}, },
}) })
const picked = ref<string>(props.modelValue || enumColor.light[0]) const picked = ref<string>(props.modelValue || enumColor.light[0])
const selectColor = (color: string) => { const selectColor = (color: string, closeModal = false) => {
picked.value = color picked.value = color
if (props.pickButton) vModel.value = color if (props.pickButton) vModel.value = color
if (closeModal) {
emit('closeModal')
}
} }
const isPickerOn = ref(false) const isPickerOn = ref(false)
@ -39,9 +41,7 @@ const isPickerOn = ref(false)
const compare = (colorA: string, colorB: string) => colorA.toLowerCase() === colorB.toLowerCase() const compare = (colorA: string, colorB: string) => colorA.toLowerCase() === colorB.toLowerCase()
watch(picked, (n, _o) => { watch(picked, (n, _o) => {
if (!props.pickButton) { vModel.value = n
vModel.value = n
}
}) })
</script> </script>
@ -54,7 +54,7 @@ watch(picked, (n, _o) => {
class="color-selector" class="color-selector"
:class="compare(picked, color) ? 'selected' : ''" :class="compare(picked, color) ? 'selected' : ''"
:style="{ 'background-color': `${color}` }" :style="{ 'background-color': `${color}` }"
@click="selectColor(color)" @click="selectColor(color, true)"
> >
{{ compare(picked, color) ? '&#10003;' : '' }} {{ compare(picked, color) ? '&#10003;' : '' }}
</button> </button>

5
packages/nc-gui/components/smartsheet/column/SelectOptions.vue

@ -218,11 +218,12 @@ watch(vModel.value, (next) => {
<LazyGeneralColorPicker <LazyGeneralColorPicker
v-model="element.color" v-model="element.color"
:pick-button="true" :pick-button="true"
@update:model-value="colorMenus[index] = false" @close-modal="colorMenus[index] = false"
@input="(el:string) => (element.color = el)"
/> />
</template> </template>
<MdiArrowDownDropCircle <MdiArrowDownDropCircle
class="mr-2 text-[1.5em] outline-0 hover:!text-[1.75em]" class="mr-2 text-[1.5em] outline-0 hover:!text-[1.75em] cursor-pointer"
:class="{ 'text-[1.75em]': colorMenus[index] }" :class="{ 'text-[1.75em]': colorMenus[index] }"
:style="{ color: element.color }" :style="{ color: element.color }"
/> />

Loading…
Cancel
Save