Moves selectedIds into page state, state mounts only one page state / page at a time

This commit is contained in:
Steve Ruiz 2021-06-07 12:18:50 +01:00
parent 45fd645885
commit 350c1debde
34 changed files with 445 additions and 249 deletions

View file

@ -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,