diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2020-12-26 22:41:00 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2020-12-26 22:41:00 +0900 |
| commit | 743eca4a956b2acbd540f5d52e419f154365c4ac (patch) | |
| tree | d2deef6bae2e5bcc5a55ddca0416eaad5e52b00f /src/client | |
| parent | Improve deck (diff) | |
| download | misskey-743eca4a956b2acbd540f5d52e419f154365c4ac.tar.gz misskey-743eca4a956b2acbd540f5d52e419f154365c4ac.tar.bz2 misskey-743eca4a956b2acbd540f5d52e419f154365c4ac.zip | |
Improve deck
Diffstat (limited to 'src/client')
| -rw-r--r-- | src/client/pages/settings/deck.vue | 55 | ||||
| -rw-r--r-- | src/client/ui/deck.vue | 16 | ||||
| -rw-r--r-- | src/client/ui/deck/column.vue | 19 | ||||
| -rw-r--r-- | src/client/ui/deck/deck-store.ts | 8 |
4 files changed, 51 insertions, 47 deletions
diff --git a/src/client/pages/settings/deck.vue b/src/client/pages/settings/deck.vue index 7b6824d10e..0fcc2f795e 100644 --- a/src/client/pages/settings/deck.vue +++ b/src/client/pages/settings/deck.vue @@ -1,53 +1,48 @@ <template> <FormBase> + <FormGroup> + <template #label>{{ $ts.defaultNavigationBehaviour }}</template> + <FormSwitch v-model:value="navWindow">{{ $ts.openInWindow }}</FormSwitch> + </FormGroup> - <section class="_card _vMargin"> - <div class="_title"><Fa :icon="faColumns"/> </div> - <div class="_content"> - <div>{{ $ts.defaultNavigationBehaviour }}</div> - <MkSwitch v-model:value="navWindow">{{ $ts.openInWindow }}</MkSwitch> - </div> - <div class="_content"> - <MkSwitch v-model:value="alwaysShowMainColumn"> - {{ $ts._deck.alwaysShowMainColumn }} - </MkSwitch> - </div> - <div class="_content"> - <div>{{ $ts._deck.columnAlign }}</div> - <MkRadio v-model="columnAlign" value="left">{{ $ts.left }}</MkRadio> - <MkRadio v-model="columnAlign" value="center">{{ $ts.center }}</MkRadio> - </div> - </section> + <FormSwitch v-model:value="alwaysShowMainColumn">{{ $ts._deck.alwaysShowMainColumn }}</FormSwitch> + <FormRadios v-model="columnAlign"> + <template #desc>{{ $ts._deck.columnAlign }}</template> + <option value="left">{{ $ts.left }}</option> + <option value="center">{{ $ts.center }}</option> + </FormRadios> + + <FormRadios v-model="columnHeaderHeight"> + <template #desc>{{ $ts._deck.columnHeaderHeight }}</template> + <option :value="42">{{ $ts.narrow }}</option> + <option :value="45">{{ $ts.medium }}</option> + <option :value="48">{{ $ts.wide }}</option> + </FormRadios> + + <FormInput v-model:value="columnMargin" type="number"> + <span>{{ $ts._deck.columnMargin }}</span> + <template #suffix>px</template> + </FormInput> </FormBase> </template> <script lang="ts"> import { defineComponent } from 'vue'; import { faImage, faCog, faColumns } from '@fortawesome/free-solid-svg-icons'; -import MkButton from '@/components/ui/button.vue'; -import MkSwitch from '@/components/ui/switch.vue'; -import MkSelect from '@/components/ui/select.vue'; -import MkRadio from '@/components/ui/radio.vue'; -import MkRadios from '@/components/ui/radios.vue'; -import MkRange from '@/components/ui/range.vue'; import FormSwitch from '@/components/form/switch.vue'; import FormSelect from '@/components/form/select.vue'; import FormRadios from '@/components/form/radios.vue'; +import FormInput from '@/components/form/input.vue'; import FormBase from '@/components/form/base.vue'; import FormGroup from '@/components/form/group.vue'; import { deckStore } from '@/ui/deck/deck-store'; export default defineComponent({ components: { - MkButton, - MkSwitch, - MkSelect, - MkRadio, - MkRadios, - MkRange, FormSwitch, FormSelect, + FormInput, FormRadios, FormBase, FormGroup, @@ -69,6 +64,8 @@ export default defineComponent({ navWindow: deckStore.makeGetterSetter('navWindow'), alwaysShowMainColumn: deckStore.makeGetterSetter('alwaysShowMainColumn'), columnAlign: deckStore.makeGetterSetter('columnAlign'), + columnMargin: deckStore.makeGetterSetter('columnMargin'), + columnHeaderHeight: deckStore.makeGetterSetter('columnHeaderHeight'), }, mounted() { diff --git a/src/client/ui/deck.vue b/src/client/ui/deck.vue index 453e169327..a31fcebcaf 100644 --- a/src/client/ui/deck.vue +++ b/src/client/ui/deck.vue @@ -1,5 +1,7 @@ <template> -<div class="mk-deck" :class="`${deckStore.state.columnAlign}`" v-hotkey.global="keymap" @contextmenu.self.prevent="onContextmenu"> +<div class="mk-deck" :class="`${deckStore.reactiveState.columnAlign.value}`" v-hotkey.global="keymap" @contextmenu.self.prevent="onContextmenu" + :style="{ '--deckMargin': deckStore.reactiveState.columnMargin.value + 'px' }" +> <XSidebar ref="nav"/> <template v-for="ids in layout"> @@ -158,11 +160,7 @@ export default defineComponent({ .mk-deck { $nav-hide-threshold: 650px; // TODO: どこかに集約したい - // TODO: この値を設定で変えられるようにする? - $columnMargin: 32px; - - $deckMargin: $columnMargin; - + // TODO: ここではなくて、各カラムで自身の幅に応じて上書きするようにしたい --margin: var(--marginHalf); display: flex; @@ -170,7 +168,7 @@ export default defineComponent({ height: calc(var(--vh, 1vh) * 100); box-sizing: border-box; flex: 1; - padding: $deckMargin; + padding: var(--deckMargin); &.center { > .column:first-of-type { @@ -184,14 +182,14 @@ export default defineComponent({ > .column { flex-shrink: 0; - margin-right: $columnMargin; + margin-right: var(--deckMargin); &.folder { display: flex; flex-direction: column; > *:not(:last-child) { - margin-bottom: $columnMargin; + margin-bottom: var(--deckMargin); } } } diff --git a/src/client/ui/deck/column.vue b/src/client/ui/deck/column.vue index 17aa922823..80d72e65e9 100644 --- a/src/client/ui/deck/column.vue +++ b/src/client/ui/deck/column.vue @@ -5,6 +5,7 @@ @dragleave="onDragleave" @drop.prevent.stop="onDrop" v-hotkey="keymap" + :style="{ '--deckColumnHeaderHeight': deckStore.reactiveState.columnHeaderHeight.value + 'px' }" > <header :class="{ indicated }" draggable="true" @@ -35,6 +36,7 @@ import { faArrowUp, faArrowDown, faAngleUp, faAngleDown, faCaretDown, faArrowRig import { faWindowMaximize, faTrashAlt, faWindowRestore } from '@fortawesome/free-regular-svg-icons'; import * as os from '@/os'; import { updateColumn, swapLeftColumn, swapRightColumn, swapUpColumn, swapDownColumn, stackLeftColumn, popRightColumn, removeColumn, swapColumn } from './deck-store'; +import { deckStore } from './deck-store'; export default defineComponent({ props: { @@ -67,6 +69,7 @@ export default defineComponent({ data() { return { + deckStore, active: true, dragging: false, draghover: false, @@ -261,8 +264,6 @@ export default defineComponent({ <style lang="scss" scoped> .dnpfarvg { - $header-height: 42px; - --section-padding: 10px; height: 100%; @@ -296,8 +297,8 @@ export default defineComponent({ } &:not(.active) { - flex-basis: $header-height; - min-height: $header-height; + flex-basis: var(--deckColumnHeaderHeight); + min-height: var(--deckColumnHeaderHeight); > header.indicated { box-shadow: 4px 0px var(--accent) inset; @@ -329,8 +330,8 @@ export default defineComponent({ position: relative; display: flex; z-index: 2; - line-height: $header-height; - height: $header-height; + line-height: var(--deckColumnHeaderHeight); + height: var(--deckColumnHeaderHeight); padding: 0 16px; font-size: 0.9em; color: var(--panelHeaderFg); @@ -362,8 +363,8 @@ export default defineComponent({ > .action > *, > .menu { z-index: 1; - width: $header-height; - line-height: $header-height; + width: var(--deckColumnHeaderHeight); + line-height: var(--deckColumnHeaderHeight); font-size: 16px; color: var(--faceTextButton); @@ -395,7 +396,7 @@ export default defineComponent({ } > div { - height: calc(100% - #{$header-height}); + height: calc(100% - var(--deckColumnHeaderHeight)); overflow: auto; overflow-x: hidden; -webkit-overflow-scrolling: touch; diff --git a/src/client/ui/deck/deck-store.ts b/src/client/ui/deck/deck-store.ts index 7693401e15..9bdb6c20ed 100644 --- a/src/client/ui/deck/deck-store.ts +++ b/src/client/ui/deck/deck-store.ts @@ -40,6 +40,14 @@ export const deckStore = markRaw(new Storage('deck', { where: 'deviceAccount', default: true }, + columnMargin: { + where: 'deviceAccount', + default: 16 + }, + columnHeaderHeight: { + where: 'deviceAccount', + default: 42 + }, })); export function addColumn(column: Column) { |