mirror of
https://github.com/Spythere/genera-tor.git
synced 2026-05-03 05:28:13 +00:00
chore: changed panel navbar style
This commit is contained in:
+2
-2
@@ -4,8 +4,8 @@
|
|||||||
"en": "ENG"
|
"en": "ENG"
|
||||||
},
|
},
|
||||||
"navbar": {
|
"navbar": {
|
||||||
"OrderMessagePanel": "ORDER MESSAGE",
|
"OrderMessagePanel": "MESSAGE",
|
||||||
"OrderListPanel": "SAVED ORDERS",
|
"OrderListPanel": "SAVED",
|
||||||
"OrderTrainPickerPanel": "TRAINS"
|
"OrderTrainPickerPanel": "TRAINS"
|
||||||
},
|
},
|
||||||
"update": {
|
"update": {
|
||||||
|
|||||||
+2
-2
@@ -13,8 +13,8 @@
|
|||||||
"info-2": "Pełny changelog dostępny na <a href='https://github.com/Spythere/genera-tor' target='_blank'>GitHubie projektu</a>"
|
"info-2": "Pełny changelog dostępny na <a href='https://github.com/Spythere/genera-tor' target='_blank'>GitHubie projektu</a>"
|
||||||
},
|
},
|
||||||
"navbar": {
|
"navbar": {
|
||||||
"OrderMessagePanel": "TREŚĆ ROZKAZU",
|
"OrderMessagePanel": "WIADOMOŚĆ",
|
||||||
"OrderListPanel": "ZAPISANE ROZKAZY",
|
"OrderListPanel": "ZAPISANE",
|
||||||
"OrderTrainPickerPanel": "POCIĄGI"
|
"OrderTrainPickerPanel": "POCIĄGI"
|
||||||
},
|
},
|
||||||
"order-message": {
|
"order-message": {
|
||||||
|
|||||||
+46
-10
@@ -8,13 +8,33 @@
|
|||||||
<div class="panel-container">
|
<div class="panel-container">
|
||||||
<div class="panel-nav">
|
<div class="panel-nav">
|
||||||
<button
|
<button
|
||||||
v-for="(action, i) in navActions"
|
key="OrderMessagePanel"
|
||||||
:key="action"
|
class="g-button"
|
||||||
class="g-button option"
|
:data-active="store.panelMode == 'OrderMessagePanel'"
|
||||||
:data-active="store.panelMode == action"
|
@click="selectOrderMode('OrderMessagePanel')"
|
||||||
@click="selectOrderMode(action)"
|
|
||||||
>
|
>
|
||||||
{{ t(`navbar.${action}`) }}
|
<MessageSquareTextIcon :size="20" />
|
||||||
|
{{ t(`navbar.OrderMessagePanel`) }}
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<button
|
||||||
|
key="OrderListPanel"
|
||||||
|
class="g-button"
|
||||||
|
:data-active="store.panelMode == 'OrderListPanel'"
|
||||||
|
@click="selectOrderMode('OrderListPanel')"
|
||||||
|
>
|
||||||
|
<BookMarkedIcon :size="20" />
|
||||||
|
{{ t(`navbar.OrderListPanel`) }}
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<button
|
||||||
|
key="OrderTrainPickerPanel"
|
||||||
|
class="g-button"
|
||||||
|
:data-active="store.panelMode == 'OrderTrainPickerPanel'"
|
||||||
|
@click="selectOrderMode('OrderTrainPickerPanel')"
|
||||||
|
>
|
||||||
|
<TrainFrontIcon :size="20" />
|
||||||
|
{{ t(`navbar.OrderTrainPickerPanel`) }}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -38,12 +58,11 @@ import OrderMessagePanel from '../components/Panels/OrderMessagePanel.vue';
|
|||||||
import OrderListPanel from '../components/Panels/OrderListPanel.vue';
|
import OrderListPanel from '../components/Panels/OrderListPanel.vue';
|
||||||
import OrderTrainPickerPanel from '../components/Panels/OrderTrainPickerPanel.vue';
|
import OrderTrainPickerPanel from '../components/Panels/OrderTrainPickerPanel.vue';
|
||||||
import { TPanelMode } from '../types/dataTypes';
|
import { TPanelMode } from '../types/dataTypes';
|
||||||
|
import { BookMarkedIcon, MessageSquareTextIcon, TrainFrontIcon } from 'lucide-vue-next';
|
||||||
|
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
const store = useStore();
|
const store = useStore();
|
||||||
|
|
||||||
const navActions: TPanelMode[] = ['OrderMessagePanel', 'OrderListPanel', 'OrderTrainPickerPanel'];
|
|
||||||
|
|
||||||
function selectOrderMode(mode: TPanelMode) {
|
function selectOrderMode(mode: TPanelMode) {
|
||||||
store.panelMode = mode;
|
store.panelMode = mode;
|
||||||
}
|
}
|
||||||
@@ -113,8 +132,8 @@ const panelComponent = computed(() => {
|
|||||||
|
|
||||||
.panel-nav {
|
.panel-nav {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
gap: 0.25em;
|
gap: 0.25em;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
|
|
||||||
@@ -124,11 +143,24 @@ const panelComponent = computed(() => {
|
|||||||
.panel-nav > button {
|
.panel-nav > button {
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
gap: 0.5em;
|
||||||
|
min-width: 8em;
|
||||||
|
padding: 0.25em 0.5em;
|
||||||
|
|
||||||
|
&:focus-visible {
|
||||||
|
outline: 1px solid white;
|
||||||
|
}
|
||||||
|
|
||||||
&::before {
|
&::before {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
content: '';
|
content: '';
|
||||||
bottom: -3px;
|
bottom: -3px;
|
||||||
left: 0;
|
left: 50%;
|
||||||
|
transform: translateX(-50%);
|
||||||
|
|
||||||
width: 0;
|
width: 0;
|
||||||
height: 3px;
|
height: 3px;
|
||||||
|
|
||||||
@@ -137,6 +169,10 @@ const panelComponent = computed(() => {
|
|||||||
background-color: colors.$accentCol;
|
background-color: colors.$accentCol;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&[data-active='true'] {
|
||||||
|
color: colors.$accentCol;
|
||||||
|
}
|
||||||
|
|
||||||
&[data-active='true']::before {
|
&[data-active='true']::before {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user