Skip to content

Commit 2aaa1c2

Browse files
authored
fix(usePermission): state setting (#4167)
1 parent ea87ac5 commit 2aaa1c2

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

packages/core/usePermission/index.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -74,12 +74,11 @@ export function usePermission(
7474
: permissionDesc as PermissionDescriptor
7575
const state = shallowRef<PermissionState | undefined>()
7676

77-
const onChange = () => {
78-
if (permissionStatus.value)
79-
state.value = permissionStatus.value.state
77+
const update = () => {
78+
state.value = permissionStatus.value?.state ?? 'prompt'
8079
}
8180

82-
useEventListener(permissionStatus, 'change', onChange)
81+
useEventListener(permissionStatus, 'change', update)
8382

8483
const query = createSingletonPromise(async () => {
8584
if (!isSupported.value)
@@ -88,10 +87,12 @@ export function usePermission(
8887
if (!permissionStatus.value) {
8988
try {
9089
permissionStatus.value = await navigator!.permissions.query(desc)
91-
onChange()
9290
}
9391
catch {
94-
state.value = 'prompt'
92+
permissionStatus.value = undefined
93+
}
94+
finally {
95+
update()
9596
}
9697
}
9798

0 commit comments

Comments
 (0)