settings modal minimization API
This commit is contained in:
parent
f65f595f75
commit
e30ff80995
5 changed files with 39 additions and 17 deletions
|
|
@ -64,11 +64,6 @@ const SettingsModal = {
|
|||
}),
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
$route(r) {
|
||||
this.peekModal()
|
||||
}
|
||||
},
|
||||
components: {
|
||||
Modal,
|
||||
Popover,
|
||||
|
|
@ -98,8 +93,11 @@ const SettingsModal = {
|
|||
closeModal() {
|
||||
useInterfaceStore().closeSettingsModal()
|
||||
},
|
||||
peekModal() {
|
||||
useInterfaceStore().togglePeekSettingsModal()
|
||||
toggleMinimizeModal(state) {
|
||||
useInterfaceStore().toggleMinimizeSettingsModal()
|
||||
},
|
||||
minimizeModal() {
|
||||
useInterfaceStore().setSettingsModalState('minimized')
|
||||
},
|
||||
importValidator(data) {
|
||||
if (!Array.isArray(data._pleroma_settings_version)) {
|
||||
|
|
@ -256,7 +254,7 @@ const SettingsModal = {
|
|||
modalMode: (store) => store.settingsModalMode,
|
||||
modalOpenedOnceUser: (store) => store.settingsModalLoadedUser,
|
||||
modalOpenedOnceAdmin: (store) => store.settingsModalLoadedAdmin,
|
||||
modalPeeked: (store) => store.settingsModalState === 'minimized',
|
||||
modalMinimized: (store) => store.settingsModalState === 'minimized',
|
||||
}),
|
||||
expertLevel: {
|
||||
get() {
|
||||
|
|
@ -276,6 +274,11 @@ const SettingsModal = {
|
|||
)
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
$route(r) {
|
||||
this.minimizeModal()
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
export default SettingsModal
|
||||
|
|
|
|||
|
|
@ -300,7 +300,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
&.peek {
|
||||
&.minimize {
|
||||
.settings-modal-panel {
|
||||
/* Explanation:
|
||||
* Modal is positioned vertically centered.
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@
|
|||
<Modal
|
||||
:is-open="modalActivated"
|
||||
class="settings-modal"
|
||||
:class="{ peek: modalPeeked }"
|
||||
:no-background="modalPeeked"
|
||||
:class="{ minimize: modalMinimized }"
|
||||
:no-background="modalMinimized"
|
||||
>
|
||||
<div class="settings-modal-panel panel">
|
||||
<div class="panel-heading">
|
||||
|
|
@ -22,8 +22,8 @@
|
|||
</transition>
|
||||
<button
|
||||
class="btn button-default"
|
||||
:title="$t('general.peek')"
|
||||
@click="peekModal"
|
||||
:title="$t('general.minimize')"
|
||||
@click="toggleMinimizeModal"
|
||||
>
|
||||
<FAIcon
|
||||
:icon="['far', 'window-minimize']"
|
||||
|
|
|
|||
|
|
@ -591,7 +591,7 @@ const statuses = {
|
|||
pagination,
|
||||
},
|
||||
) {
|
||||
commit('addNewStatuses', {
|
||||
return commit('addNewStatuses', {
|
||||
statuses,
|
||||
showImmediately,
|
||||
timeline,
|
||||
|
|
@ -683,7 +683,7 @@ const statuses = {
|
|||
.then((status) => dispatch('addNewStatuses', { statuses: [status] }))
|
||||
},
|
||||
unpinStatus({ rootState, dispatch }, statusId) {
|
||||
rootState.api.backendInteractor
|
||||
return rootState.api.backendInteractor
|
||||
.unpinOwnStatus({ id: statusId })
|
||||
.then((status) => dispatch('addNewStatuses', { statuses: [status] }))
|
||||
},
|
||||
|
|
@ -822,7 +822,7 @@ const statuses = {
|
|||
'addNewUsers',
|
||||
data.statuses.map((s) => s.user).filter((u) => u),
|
||||
)
|
||||
store.commit('addNewStatuses', { statuses: data.statuses })
|
||||
data.statuses = store.commit('addNewStatuses', { statuses: data.statuses })
|
||||
return data
|
||||
})
|
||||
},
|
||||
|
|
|
|||
|
|
@ -133,6 +133,23 @@ export const useInterfaceStore = defineStore('interface', {
|
|||
}
|
||||
}
|
||||
},
|
||||
setSettingsModalState(newState) {
|
||||
const oldState = this.settingsModalState
|
||||
const legal = (() => {
|
||||
switch (oldState) {
|
||||
case 'minimized':
|
||||
return true
|
||||
case 'visible':
|
||||
return true
|
||||
case 'hidden':
|
||||
return newState === 'visible'
|
||||
}
|
||||
})()
|
||||
|
||||
if (legal) {
|
||||
this.settingsModalState = newState
|
||||
}
|
||||
},
|
||||
togglePeekSettingsModal() {
|
||||
switch (this.settingsModalState) {
|
||||
case 'minimized':
|
||||
|
|
@ -141,8 +158,10 @@ export const useInterfaceStore = defineStore('interface', {
|
|||
case 'visible':
|
||||
this.settingsModalState = 'minimized'
|
||||
return
|
||||
case 'hidden':
|
||||
return
|
||||
default:
|
||||
throw new Error('Illegal minimization state of settings modal')
|
||||
throw new Error(`Illegal minimization state of settings modal: ${this.settingsModalState}`)
|
||||
}
|
||||
},
|
||||
clearSettingsModalTargetTab() {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue