Moves selectedIds into page state, state mounts only one page state / page at a time
This commit is contained in:
parent
45fd645885
commit
350c1debde
34 changed files with 445 additions and 249 deletions
|
@ -1,8 +1,10 @@
|
|||
import Command from './command'
|
||||
import history from '../history'
|
||||
import { Data, Page } from 'types'
|
||||
import { Data, Page, PageState } from 'types'
|
||||
import { v4 as uuid } from 'uuid'
|
||||
import { current } from 'immer'
|
||||
import { getSelectedIds } from 'utils/utils'
|
||||
import storage from 'state/storage'
|
||||
|
||||
export default function createPage(data: Data) {
|
||||
const snapshot = getSnapshot(data)
|
||||
|
@ -13,14 +15,13 @@ export default function createPage(data: Data) {
|
|||
name: 'change_page',
|
||||
category: 'canvas',
|
||||
do(data) {
|
||||
data.selectedIds.clear()
|
||||
const { page, pageState } = snapshot
|
||||
data.document.pages[page.id] = page
|
||||
data.pageStates[page.id] = pageState
|
||||
data.currentPageId = page.id
|
||||
storage.savePage(data, page.id)
|
||||
},
|
||||
undo(data) {
|
||||
data.selectedIds.clear()
|
||||
const { page, currentPageId } = snapshot
|
||||
delete data.document.pages[page.id]
|
||||
delete data.pageStates[page.id]
|
||||
|
@ -44,7 +45,8 @@ function getSnapshot(data: Data) {
|
|||
childIndex: pages.length,
|
||||
shapes: {},
|
||||
}
|
||||
const pageState = {
|
||||
const pageState: PageState = {
|
||||
selectedIds: new Set<string>(),
|
||||
camera: {
|
||||
point: [0, 0],
|
||||
zoom: 1,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue