diff --git a/src/address-edit/AddressEditDetail.tsx b/src/address-edit/AddressEditDetail.tsx index 45b78feb9..efecefb98 100644 --- a/src/address-edit/AddressEditDetail.tsx +++ b/src/address-edit/AddressEditDetail.tsx @@ -41,9 +41,7 @@ export default defineComponent({ emit('input', `${express.address || ''} ${express.name || ''}`.trim()); }; - const onFinish = () => { - field.value!.blur(); - }; + const onFinish = () => field.value?.blur(); const renderFinish = () => { if (props.value && props.focused && android) { diff --git a/src/area/Area.tsx b/src/area/Area.tsx index 393102760..f000efe47 100644 --- a/src/area/Area.tsx +++ b/src/area/Area.tsx @@ -285,8 +285,10 @@ export default defineComponent({ state.code = values[index].code; setValues(); - const parsedValues = parseValues(pickerRef.value!.getValues()); - emit('change', parsedValues, index); + if (pickerRef.value) { + const parsedValues = parseValues(pickerRef.value.getValues()); + emit('change', parsedValues, index); + } }; const onConfirm = (values: AreaColumnOption[], index: number) => { diff --git a/src/calendar/CalendarMonth.tsx b/src/calendar/CalendarMonth.tsx index f930f7db8..7ed078a5e 100644 --- a/src/calendar/CalendarMonth.tsx +++ b/src/calendar/CalendarMonth.tsx @@ -94,12 +94,14 @@ export default defineComponent({ const scrollIntoView = (body: Element) => { const el = props.showSubtitle ? daysRef.value : monthRef.value; - const scrollTop = - el!.getBoundingClientRect().top - - body.getBoundingClientRect().top + - body.scrollTop; + if (el) { + const scrollTop = + el.getBoundingClientRect().top - + body.getBoundingClientRect().top + + body.scrollTop; - setScrollTop(body, scrollTop); + setScrollTop(body, scrollTop); + } }; const getMultipleDayType = (day: Date) => { diff --git a/src/collapse-item/CollapseItem.tsx b/src/collapse-item/CollapseItem.tsx index eedcc4169..84146bd65 100644 --- a/src/collapse-item/CollapseItem.tsx +++ b/src/collapse-item/CollapseItem.tsx @@ -61,8 +61,8 @@ export default defineComponent({ const onTransitionEnd = () => { if (!expanded.value) { show.value = false; - } else { - wrapperRef.value!.style.height = ''; + } else if (wrapperRef.value) { + wrapperRef.value.style.height = ''; } }; diff --git a/src/composables/use-height.ts b/src/composables/use-height.ts index 523ae4735..487f521de 100644 --- a/src/composables/use-height.ts +++ b/src/composables/use-height.ts @@ -4,11 +4,11 @@ import { Ref, ref, onMounted, nextTick } from 'vue'; export const useHeight = (element: Element | Ref) => { const height = ref(); - onMounted(() => { + onMounted(() => nextTick(() => { height.value = useRect(element).height; - }); - }); + }) + ); return height; }; diff --git a/src/composables/use-lock-scroll.ts b/src/composables/use-lock-scroll.ts index 6e2bcc0c6..642b01b44 100644 --- a/src/composables/use-lock-scroll.ts +++ b/src/composables/use-lock-scroll.ts @@ -71,17 +71,9 @@ export function useLockScroll( } }; - const init = () => { - if (shouldLock()) { - lock(); - } - }; + const init = () => shouldLock() && lock(); - const destroy = () => { - if (shouldLock()) { - unlock(); - } - }; + const destroy = () => shouldLock() && unlock(); onMountedOrActivated(init); onDeactivated(destroy); diff --git a/src/contact-edit/ContactEdit.tsx b/src/contact-edit/ContactEdit.tsx index 16a9569e8..422e01b77 100644 --- a/src/contact-edit/ContactEdit.tsx +++ b/src/contact-edit/ContactEdit.tsx @@ -54,11 +54,10 @@ export default defineComponent({ } }; - const onDelete = () => { + const onDelete = () => Dialog.confirm({ title: t('confirmDelete'), }).then(() => emit('delete', contact)); - }; const renderButtons = () => (
diff --git a/src/datetime-picker/DatePicker.tsx b/src/datetime-picker/DatePicker.tsx index 0c97fd4ec..fa0445192 100644 --- a/src/datetime-picker/DatePicker.tsx +++ b/src/datetime-picker/DatePicker.tsx @@ -222,7 +222,7 @@ export default defineComponent({ }); nextTick(() => { - picker.value!.setValues(values); + picker.value?.setValues(values); }); }; diff --git a/src/datetime-picker/TimePicker.tsx b/src/datetime-picker/TimePicker.tsx index 81a821407..256031b82 100644 --- a/src/datetime-picker/TimePicker.tsx +++ b/src/datetime-picker/TimePicker.tsx @@ -106,7 +106,7 @@ export default defineComponent({ ]; nextTick(() => { - picker.value!.setValues(values); + picker.value?.setValues(values); }); }; diff --git a/src/notify/Notify.tsx b/src/notify/Notify.tsx index 6efe50e83..b9d0e67b2 100644 --- a/src/notify/Notify.tsx +++ b/src/notify/Notify.tsx @@ -23,25 +23,21 @@ export default defineComponent({ }), setup(props, { slots }) { - return () => { - const style = { - color: props.color, - background: props.background, - }; - - return ( - - {slots.default ? slots.default() : props.message} - - ); - }; + return () => ( + + {slots.default ? slots.default() : props.message} + + ); }, }); diff --git a/src/popover/Popover.tsx b/src/popover/Popover.tsx index 6e7d5e9fd..28a4d4a01 100644 --- a/src/popover/Popover.tsx +++ b/src/popover/Popover.tsx @@ -79,7 +79,7 @@ export default defineComponent({ closeOnClickOverlay: truthProp, closeOnClickOutside: truthProp, offset: { - type: (Array as unknown) as PropType<[number, number]>, + type: Array as unknown as PropType<[number, number]>, default: () => [0, 8], }, theme: { @@ -112,24 +112,28 @@ export default defineComponent({ const wrapperRef = ref(); const popoverRef = ref(); - const createPopperInstance = () => - createPopper(wrapperRef.value!, popoverRef.value!.popupRef.value, { - placement: props.placement, - modifiers: [ - { - name: 'computeStyles', - options: { - adaptive: false, - gpuAcceleration: false, + const createPopperInstance = () => { + if (wrapperRef.value && popoverRef.value) { + return createPopper(wrapperRef.value, popoverRef.value.popupRef.value, { + placement: props.placement, + modifiers: [ + { + name: 'computeStyles', + options: { + adaptive: false, + gpuAcceleration: false, + }, }, - }, - extend({}, offsetModifier, { - options: { - offset: props.offset, - }, - }), - ], - }); + extend({}, offsetModifier, { + options: { + offset: props.offset, + }, + }), + ], + }); + } + return null; + }; const updateLocation = () => { nextTick(() => { diff --git a/src/toast/Toast.tsx b/src/toast/Toast.tsx index 5e586473c..466106ecd 100644 --- a/src/toast/Toast.tsx +++ b/src/toast/Toast.tsx @@ -78,9 +78,7 @@ export default defineComponent({ } }; - const clearTimer = () => { - clearTimeout(timer); - }; + const clearTimer = () => clearTimeout(timer); const renderIcon = () => { const { icon, type, iconSize, iconPrefix, loadingType } = props; diff --git a/src/toast/function-call.tsx b/src/toast/function-call.tsx index 12e3f7ef7..9e1b31a55 100644 --- a/src/toast/function-call.tsx +++ b/src/toast/function-call.tsx @@ -155,7 +155,7 @@ Toast.clear = (all?: boolean) => { } else if (!allowMultiple) { queue[0].clear(); } else { - queue.shift()!.clear(); + queue.shift()?.clear(); } } };