diff --git a/src/components/ColorPicker/ColorPicker.vue b/src/components/ColorPicker/ColorPicker.vue index c49251403c2c57f2c264a8841dd9526b10202f17..ee6b412db5ffc8705a17cd2ab8301a6d02b843f6 100644 --- a/src/components/ColorPicker/ColorPicker.vue +++ b/src/components/ColorPicker/ColorPicker.vue @@ -16,11 +16,11 @@ const size = computed(() => { if (size === 'large') return '40px'; if (size === 'huge') return '60px'; return '15px'; -}); -const borderWidth = computed(() => (props.size === 'small' ? '2px' : '3px')); +}) as Ref<string>; +const borderWidth = computed(() => (props.size === 'small' ? '2px' : '3px')) as Ref<string>; const borderRadius = computed(() => `calc(${size.value} * 0.3)`); -function wc_hex_is_light(color) { +function wc_hex_is_light(color: string | undefined) { if (!color) return true; const hex = color.replace('#', ''); const c_r = parseInt(hex.substring(0, 2), 16); @@ -31,13 +31,13 @@ function wc_hex_is_light(color) { } const color = computed(() => - props.buttonProps.textColor - ? convertThemeToColor(props.buttonProps.textColor, props.buttonProps.darknessTextColor) + props.buttonProps?.textColor + ? convertThemeToColor(props.buttonProps.textColor, props.buttonProps?.darknessTextColor) : props.sameButtonColor ? !wc_hex_is_light(value?.value) ? 'white' : 'black' - : convertThemeToTextColor(props.buttonProps.theme ?? 'white', props.buttonProps.darknessTheme), + : convertThemeToTextColor(props.buttonProps?.theme ?? 'white', props.buttonProps?.darknessTheme), ); const textSize = computed(() => { switch (props.size) { @@ -51,7 +51,7 @@ const textSize = computed(() => { return '16px'; }); const buttonPadding = computed(() => { - if (props.buttonProps.padding) return props.buttonProps.padding; + if (props.buttonProps?.padding) return props.buttonProps?.padding; switch (props.size) { case 'small': return '0.5rem'; @@ -81,8 +81,8 @@ const buttonPadding = computed(() => { :class="[ 'text', { - bold: buttonProps?.textStyle === 'bold', - italic: buttonProps?.textStyle === 'italic', + bold: buttonProps && buttonProps?.textStyle === 'bold', + italic: buttonProps && buttonProps?.textStyle === 'italic', }, ]" >{{ buttonProps?.label ?? 'Button' }}</label @@ -94,8 +94,8 @@ const buttonPadding = computed(() => { v-model="value" :disabled="disabled" :class="{ - noVisible: buttonProps, - disabled, + noVisible: !!buttonProps, + disabled: disabled, }" /> </div>