Skip to content

Commit 05e7251

Browse files
authoredApr 19, 2024
fix: return to previous state after hovered event variant (#183)
1 parent c9161f9 commit 05e7251

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed
 

‎src/features/eventListeners.ts

+2-3
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ export function registerEventListeners<T extends string, V extends MotionVariant
1212
const focused = ref(false)
1313

1414
const mutableKeys = computed(() => {
15-
let result: string[] = []
15+
let result: string[] = [...Object.keys(state.value || {})]
1616

1717
if (!_variants) return result
1818

@@ -26,7 +26,7 @@ export function registerEventListeners<T extends string, V extends MotionVariant
2626
})
2727

2828
const computedProperties = computed(() => {
29-
const result = {}
29+
const result: Partial<V> = {}
3030

3131
Object.assign(result, state.value)
3232

@@ -37,7 +37,6 @@ export function registerEventListeners<T extends string, V extends MotionVariant
3737
if (focused.value && _variants.focused) Object.assign(result, _variants.focused)
3838

3939
for (const key in result) {
40-
// @ts-expect-error - Fix errors later for typescript 5
4140
if (!mutableKeys.value.includes(key)) delete result[key]
4241
}
4342

‎src/features/lifeCycleHooks.ts

+8-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,14 @@ export function registerLifeCycleHooks<T extends string, V extends MotionVariant
1111
if (!_variants) return
1212

1313
// Set initial before the element is mounted
14-
if (_variants.initial) set('initial')
14+
if (_variants.initial) {
15+
// Set initial variant properties immediately, skipping transitions
16+
set('initial')
17+
18+
// Set variant to sync `state` which is used to undo event variant transitions
19+
// NOTE: This triggers an (instant) animation even though properties have already been applied
20+
variant.value = 'initial'
21+
}
1522

1623
// Lifecycle hooks bindings
1724
if (_variants.enter) variant.value = 'enter'

0 commit comments

Comments
 (0)