forked from didirus/AstralRinth
* fix tauri config * fix package patch * regen pnpm lock * use new workflow * New GH actions * Update lockfile * update scripts * Fix build script * Fix missing deps * Fix assets eslint * Update libraries lint * Fix all lint configs * update lockfile * add fmt + clippy fails * Separate App Tauri portion * fix app features * Fix lints * install tauri cli * update lockfile * corepack, fix lints * add store path * fix unused import * Fix tests * Issue templates + port over tauri release * fix actions * fix before build command * Add X86 target * Update build matrix * finalize actions * make debug build smaller * Use debug build to make cache smaller * dummy commit * change proj name * update file name * Use release builds for less space use * Remove rust cache * Readd for app build * add merge queue trigger
82 lines
1.9 KiB
Vue
82 lines
1.9 KiB
Vue
<script setup>
|
|
import { Button } from '@modrinth/ui'
|
|
import { XIcon } from '@modrinth/assets'
|
|
import { appWindow } from '@tauri-apps/api/window'
|
|
import { saveWindowState, StateFlags } from 'tauri-plugin-window-state-api'
|
|
import { window } from '@tauri-apps/api'
|
|
import { MinimizeIcon, MaximizeIcon } from '@/assets/icons'
|
|
</script>
|
|
|
|
<template>
|
|
<div data-tauri-drag-region class="fake-appbar">
|
|
<section class="window-controls">
|
|
<Button class="titlebar-button" icon-only @click="() => appWindow.minimize()">
|
|
<MinimizeIcon />
|
|
</Button>
|
|
<Button class="titlebar-button" icon-only @click="() => appWindow.toggleMaximize()">
|
|
<MaximizeIcon />
|
|
</Button>
|
|
<Button
|
|
class="titlebar-button close"
|
|
icon-only
|
|
@click="
|
|
() => {
|
|
saveWindowState(StateFlags.ALL)
|
|
window.getCurrent().close()
|
|
}
|
|
"
|
|
>
|
|
<XIcon />
|
|
</Button>
|
|
</section>
|
|
</div>
|
|
</template>
|
|
|
|
<style scoped lang="scss">
|
|
.fake-appbar {
|
|
position: absolute;
|
|
width: 100vw;
|
|
top: 0;
|
|
display: flex;
|
|
flex-direction: row;
|
|
justify-content: flex-end;
|
|
align-items: center;
|
|
height: 2.25rem;
|
|
background-color: var(--color-raised-bg);
|
|
-webkit-app-region: drag;
|
|
z-index: 10000;
|
|
}
|
|
|
|
.window-controls {
|
|
display: none;
|
|
flex-direction: row;
|
|
align-items: center;
|
|
|
|
.titlebar-button {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
cursor: pointer;
|
|
transition: all ease-in-out 0.1s;
|
|
background-color: var(--color-raised-bg);
|
|
color: var(--color-base);
|
|
border-radius: 0;
|
|
height: 2.25rem;
|
|
|
|
&.close {
|
|
&:hover,
|
|
&:active {
|
|
background-color: var(--color-red);
|
|
color: var(--color-accent-contrast);
|
|
}
|
|
}
|
|
|
|
&:hover,
|
|
&:active {
|
|
background-color: var(--color-button-bg);
|
|
color: var(--color-contrast);
|
|
}
|
|
}
|
|
}
|
|
</style>
|