feat: improve memo editing workflow
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import { deriveMemoShellState } from './app-shell-state'
|
||||
|
||||
describe('deriveMemoShellState', () => {
|
||||
it('switches background inertness and FAB visibility across responsive memo states', () => {
|
||||
expect(deriveMemoShellState({ view: 'memos', detailOpen: true, compact: false, trash: false })).toEqual({
|
||||
backgroundInert: false,
|
||||
showFab: false,
|
||||
})
|
||||
expect(deriveMemoShellState({ view: 'memos', detailOpen: true, compact: true, trash: false })).toEqual({
|
||||
backgroundInert: true,
|
||||
showFab: false,
|
||||
})
|
||||
expect(deriveMemoShellState({ view: 'memos', detailOpen: false, compact: true, trash: false })).toEqual({
|
||||
backgroundInert: false,
|
||||
showFab: true,
|
||||
})
|
||||
expect(deriveMemoShellState({ view: 'memos', detailOpen: false, compact: true, trash: true })).toEqual({
|
||||
backgroundInert: false,
|
||||
showFab: false,
|
||||
})
|
||||
expect(deriveMemoShellState({ view: 'tasks', detailOpen: true, compact: true, trash: true })).toEqual({
|
||||
backgroundInert: false,
|
||||
showFab: true,
|
||||
})
|
||||
})
|
||||
})
|
||||
@@ -0,0 +1,14 @@
|
||||
export type MemoShellStateInput = {
|
||||
view: string
|
||||
detailOpen: boolean
|
||||
compact: boolean
|
||||
trash: boolean
|
||||
}
|
||||
|
||||
export function deriveMemoShellState(input: MemoShellStateInput) {
|
||||
const isMemoView = input.view === 'memos'
|
||||
return {
|
||||
backgroundInert: isMemoView && input.detailOpen && input.compact,
|
||||
showFab: !isMemoView || (!input.trash && !input.detailOpen),
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user