refactor: 更新页面重载逻辑以支持 Ctrl/⌘ 键

This commit is contained in:
Hooray
2026-06-12 23:10:06 +08:00
parent 699b6d5e4e
commit bf27f7f980
8 changed files with 80 additions and 64 deletions
@@ -8,13 +8,15 @@ const mainPage = useAppPage()
const isAnimating = ref(false)
function handleClick() {
isAnimating.value = true
mainPage.reload()
}
function handleCtrlClick() {
location.reload()
function handleClick(event: MouseEvent) {
if (event.ctrlKey && !event.altKey && !event.metaKey && !event.shiftKey) {
location.reload()
return
}
if (!event.ctrlKey && !event.altKey && !event.metaKey && !event.shiftKey) {
isAnimating.value = true
mainPage.reload()
}
}
</script>
@@ -28,7 +30,7 @@ function handleCtrlClick() {
<p>可切换为浏览器原生刷新</p>
</div>
</template>
<FaButton variant="ghost" size="icon-sm" @click.exact="handleClick" @click.ctrl.exact="handleCtrlClick" @animationend="isAnimating = false">
<FaButton variant="ghost" size="icon-sm" @click="handleClick" @animationend="isAnimating = false">
<FaIcon name="i-iconoir:refresh-double" class="size-4" :class="{ animation: isAnimating }" />
</FaButton>
</FaTooltip>
@@ -8,13 +8,15 @@ const mainPage = useAppPage()
const isAnimating = ref(false)
function handleClick() {
isAnimating.value = true
mainPage.reload()
}
function handleCtrlClick() {
location.reload()
function handleClick(event: MouseEvent) {
if (event.ctrlKey && !event.altKey && !event.metaKey && !event.shiftKey) {
location.reload()
return
}
if (!event.ctrlKey && !event.altKey && !event.metaKey && !event.shiftKey) {
isAnimating.value = true
mainPage.reload()
}
}
</script>
@@ -28,7 +30,7 @@ function handleCtrlClick() {
<p>可切换为浏览器原生刷新</p>
</div>
</template>
<FaButton variant="ghost" size="icon-sm" @click.exact="handleClick" @click.ctrl.exact="handleCtrlClick" @animationend="isAnimating = false">
<FaButton variant="ghost" size="icon-sm" @click="handleClick" @animationend="isAnimating = false">
<FaIcon name="i-iconoir:refresh-double" class="size-4" :class="{ animation: isAnimating }" />
</FaButton>
</FaTooltip>
@@ -8,13 +8,15 @@ const mainPage = useAppPage()
const isAnimating = ref(false)
function handleClick() {
isAnimating.value = true
mainPage.reload()
}
function handleCtrlClick() {
location.reload()
function handleClick(event: MouseEvent) {
if (event.ctrlKey && !event.altKey && !event.metaKey && !event.shiftKey) {
location.reload()
return
}
if (!event.ctrlKey && !event.altKey && !event.metaKey && !event.shiftKey) {
isAnimating.value = true
mainPage.reload()
}
}
</script>
@@ -28,7 +30,7 @@ function handleCtrlClick() {
<p>可切换为浏览器原生刷新</p>
</div>
</template>
<FaButton variant="ghost" size="icon-sm" @click.exact="handleClick" @click.ctrl.exact="handleCtrlClick" @animationend="isAnimating = false">
<FaButton variant="ghost" size="icon-sm" @click="handleClick" @animationend="isAnimating = false">
<FaIcon name="i-iconoir:refresh-double" class="size-4" :class="{ animation: isAnimating }" />
</FaButton>
</FaTooltip>
@@ -8,13 +8,15 @@ const mainPage = useAppPage()
const isAnimating = ref(false)
function handleClick() {
isAnimating.value = true
mainPage.reload()
}
function handleCtrlClick() {
location.reload()
function handleClick(event: MouseEvent) {
if (event.ctrlKey && !event.altKey && !event.metaKey && !event.shiftKey) {
location.reload()
return
}
if (!event.ctrlKey && !event.altKey && !event.metaKey && !event.shiftKey) {
isAnimating.value = true
mainPage.reload()
}
}
</script>
@@ -28,7 +30,7 @@ function handleCtrlClick() {
<p>可切换为浏览器原生刷新</p>
</div>
</template>
<FaButton variant="ghost" size="icon-sm" @click.exact="handleClick" @click.ctrl.exact="handleCtrlClick" @animationend="isAnimating = false">
<FaButton variant="ghost" size="icon-sm" @click="handleClick" @animationend="isAnimating = false">
<FaIcon name="i-iconoir:refresh-double" class="size-4" :class="{ animation: isAnimating }" />
</FaButton>
</FaTooltip>
@@ -8,13 +8,15 @@ const mainPage = useAppPage()
const isAnimating = ref(false)
function handleClick() {
isAnimating.value = true
mainPage.reload()
}
function handleCtrlClick() {
location.reload()
function handleClick(event: MouseEvent) {
if (event.ctrlKey && !event.altKey && !event.metaKey && !event.shiftKey) {
location.reload()
return
}
if (!event.ctrlKey && !event.altKey && !event.metaKey && !event.shiftKey) {
isAnimating.value = true
mainPage.reload()
}
}
</script>
@@ -28,7 +30,7 @@ function handleCtrlClick() {
<p>可切换为浏览器原生刷新</p>
</div>
</template>
<FaButton variant="ghost" size="icon-sm" @click.exact="handleClick" @click.ctrl.exact="handleCtrlClick" @animationend="isAnimating = false">
<FaButton variant="ghost" size="icon-sm" @click="handleClick" @animationend="isAnimating = false">
<FaIcon name="i-iconoir:refresh-double" class="size-4" :class="{ animation: isAnimating }" />
</FaButton>
</FaTooltip>
@@ -8,13 +8,15 @@ const mainPage = useAppPage()
const isAnimating = ref(false)
function handleClick() {
isAnimating.value = true
mainPage.reload()
}
function handleCtrlClick() {
location.reload()
function handleClick(event: MouseEvent) {
if (event.ctrlKey && !event.altKey && !event.metaKey && !event.shiftKey) {
location.reload()
return
}
if (!event.ctrlKey && !event.altKey && !event.metaKey && !event.shiftKey) {
isAnimating.value = true
mainPage.reload()
}
}
</script>
@@ -28,7 +30,7 @@ function handleCtrlClick() {
<p>可切换为浏览器原生刷新</p>
</div>
</template>
<FaButton variant="ghost" size="icon-sm" @click.exact="handleClick" @click.ctrl.exact="handleCtrlClick" @animationend="isAnimating = false">
<FaButton variant="ghost" size="icon-sm" @click="handleClick" @animationend="isAnimating = false">
<FaIcon name="i-iconoir:refresh-double" class="size-4" :class="{ animation: isAnimating }" />
</FaButton>
</FaTooltip>
@@ -8,13 +8,15 @@ const mainPage = useAppPage()
const isAnimating = ref(false)
function handleClick() {
isAnimating.value = true
mainPage.reload()
}
function handleCtrlClick() {
location.reload()
function handleClick(event: MouseEvent) {
if (event.ctrlKey && !event.altKey && !event.metaKey && !event.shiftKey) {
location.reload()
return
}
if (!event.ctrlKey && !event.altKey && !event.metaKey && !event.shiftKey) {
isAnimating.value = true
mainPage.reload()
}
}
</script>
@@ -28,7 +30,7 @@ function handleCtrlClick() {
<p>可切换为浏览器原生刷新</p>
</div>
</template>
<FaButton variant="ghost" size="icon-sm" @click.exact="handleClick" @click.ctrl.exact="handleCtrlClick" @animationend="isAnimating = false">
<FaButton variant="ghost" size="icon-sm" @click="handleClick" @animationend="isAnimating = false">
<FaIcon name="i-iconoir:refresh-double" class="size-4" :class="{ animation: isAnimating }" />
</FaButton>
</FaTooltip>
@@ -8,13 +8,15 @@ const mainPage = useAppPage()
const isAnimating = ref(false)
function handleClick() {
isAnimating.value = true
mainPage.reload()
}
function handleCtrlClick() {
location.reload()
function handleClick(event: MouseEvent) {
if (event.ctrlKey && !event.altKey && !event.metaKey && !event.shiftKey) {
location.reload()
return
}
if (!event.ctrlKey && !event.altKey && !event.metaKey && !event.shiftKey) {
isAnimating.value = true
mainPage.reload()
}
}
</script>
@@ -28,7 +30,7 @@ function handleCtrlClick() {
<p>可切换为浏览器原生刷新</p>
</div>
</template>
<FaButton variant="ghost" size="icon-sm" @click.exact="handleClick" @click.ctrl.exact="handleCtrlClick" @animationend="isAnimating = false">
<FaButton variant="ghost" size="icon-sm" @click="handleClick" @animationend="isAnimating = false">
<FaIcon name="i-iconoir:refresh-double" class="size-4" :class="{ animation: isAnimating }" />
</FaButton>
</FaTooltip>