|
<script lang="ts"> |
|
import { getContext } from "svelte"; |
|
|
|
import type { FullscreenState } from "@graphite/state-providers/fullscreen"; |
|
|
|
import LayoutRow from "@graphite/components/layout/LayoutRow.svelte"; |
|
import IconLabel from "@graphite/components/widgets/labels/IconLabel.svelte"; |
|
import TextLabel from "@graphite/components/widgets/labels/TextLabel.svelte"; |
|
|
|
const fullscreen = getContext<FullscreenState>("fullscreen"); |
|
|
|
$: requestFullscreenHotkeys = fullscreen.keyboardLockApiSupported && !$fullscreen.keyboardLocked; |
|
|
|
async function handleClick() { |
|
if ($fullscreen.windowFullscreen) fullscreen.exitFullscreen(); |
|
else fullscreen.enterFullscreen(); |
|
} |
|
</script> |
|
|
|
<LayoutRow class="window-buttons-web" on:click={() => handleClick()} tooltip={($fullscreen.windowFullscreen ? "Exit" : "Enter") + " Fullscreen (F11)"}> |
|
{#if requestFullscreenHotkeys} |
|
<TextLabel italic={true}>Go fullscreen to access all hotkeys</TextLabel> |
|
{/if} |
|
<IconLabel icon={$fullscreen.windowFullscreen ? "FullscreenExit" : "FullscreenEnter"} /> |
|
</LayoutRow> |
|
|
|
<style lang="scss" global> |
|
.window-buttons-web { |
|
flex: 0 0 auto; |
|
align-items: center; |
|
padding: 0 8px; |
|
|
|
svg { |
|
fill: var(--color-e-nearwhite); |
|
} |
|
|
|
.text-label { |
|
margin-right: 8px; |
|
} |
|
|
|
&:hover { |
|
background: var(--color-6-lowergray); |
|
color: var(--color-f-white); |
|
|
|
svg { |
|
fill: var(--color-f-white); |
|
} |
|
} |
|
} |
|
</style> |
|
|