Selaa lähdekoodia

Adds undo / redo / clear button

main
Steve Ruiz 4 vuotta sitten
vanhempi
commit
2755b58f8f

+ 1
- 3
components/editor.tsx Näytä tiedosto

20
 
20
 
21
   return (
21
   return (
22
     <Layout>
22
     <Layout>
23
-      <Toolbar />
24
       <Canvas />
23
       <Canvas />
25
       <LeftPanels>
24
       <LeftPanels>
26
         <CodePanel />
25
         <CodePanel />
42
   bottom: 0,
41
   bottom: 0,
43
   right: 0,
42
   right: 0,
44
   display: 'grid',
43
   display: 'grid',
45
-  gridTemplateRows: '40px 1fr auto 40px',
44
+  gridTemplateRows: '1fr auto 40px',
46
   gridTemplateColumns: 'minmax(50%, 400px) 1fr auto',
45
   gridTemplateColumns: 'minmax(50%, 400px) 1fr auto',
47
   gridTemplateAreas: `
46
   gridTemplateAreas: `
48
-    "toolbar toolbar toolbar"
49
     "leftPanels main rightPanels"
47
     "leftPanels main rightPanels"
50
     "tools tools tools"
48
     "tools tools tools"
51
     "statusbar statusbar statusbar"
49
     "statusbar statusbar statusbar"

+ 2
- 0
components/tools-panel/tools-panel.tsx Näytä tiedosto

16
 import state, { useSelector } from 'state'
16
 import state, { useSelector } from 'state'
17
 import styled from 'styles'
17
 import styled from 'styles'
18
 import { ShapeType } from 'types'
18
 import { ShapeType } from 'types'
19
+import UndoRedo from './undo-redo'
19
 import Zoom from './zoom'
20
 import Zoom from './zoom'
20
 
21
 
21
 const selectSelectTool = () => state.send('SELECTED_SELECT_TOOL')
22
 const selectSelectTool = () => state.send('SELECTED_SELECT_TOOL')
129
           </IconButton>
130
           </IconButton>
130
         )}
131
         )}
131
       </Container>
132
       </Container>
133
+      <UndoRedo />
132
     </OuterContainer>
134
     </OuterContainer>
133
   )
135
   )
134
 }
136
 }

+ 46
- 0
components/tools-panel/undo-redo.tsx Näytä tiedosto

1
+import { IconButton } from 'components/shared'
2
+import { RotateCcw, RotateCw, Trash2 } from 'react-feather'
3
+import state, { useSelector } from 'state'
4
+import styled from 'styles'
5
+
6
+const undo = () => state.send('UNDO')
7
+const redo = () => state.send('REDO')
8
+const clear = () => state.send('CLEARED_PAGE')
9
+
10
+export default function UndoRedo() {
11
+  return (
12
+    <Container>
13
+      <IconButton onClick={undo}>
14
+        <RotateCcw />
15
+      </IconButton>
16
+      <IconButton onClick={redo}>
17
+        <RotateCw />
18
+      </IconButton>
19
+      <IconButton onClick={clear}>
20
+        <Trash2 />
21
+      </IconButton>
22
+    </Container>
23
+  )
24
+}
25
+
26
+const Container = styled('div', {
27
+  position: 'absolute',
28
+  bottom: 12,
29
+  right: 12,
30
+  backgroundColor: '$panel',
31
+  borderRadius: '4px',
32
+  overflow: 'hidden',
33
+  alignSelf: 'flex-end',
34
+  border: '1px solid $border',
35
+  pointerEvents: 'all',
36
+  userSelect: 'none',
37
+  zIndex: 200,
38
+  boxShadow: '0px 2px 12px rgba(0,0,0,.08)',
39
+  display: 'flex',
40
+  padding: 4,
41
+
42
+  '& svg': {
43
+    height: 13,
44
+    width: 13,
45
+  },
46
+})

+ 1
- 0
state/state.ts Näytä tiedosto

143
             SAVED: 'forceSave',
143
             SAVED: 'forceSave',
144
             UNDO: 'undo',
144
             UNDO: 'undo',
145
             REDO: 'redo',
145
             REDO: 'redo',
146
+            CLEARED_PAGE: ['selectAll', 'deleteSelection'],
146
             SAVED_CODE: 'saveCode',
147
             SAVED_CODE: 'saveCode',
147
             DELETED: 'deleteSelection',
148
             DELETED: 'deleteSelection',
148
             STARTED_PINCHING: { to: 'pinching' },
149
             STARTED_PINCHING: { to: 'pinching' },

Loading…
Peruuta
Tallenna