11import { usePowerSync , useQuery , useStatus } from '@powersync/react' ;
2- import { Box , Container , Typography } from '@mui/material' ;
2+ import { Box , Container , FormControlLabel , Switch , Typography } from '@mui/material' ;
33import { useEffect , useMemo , useState } from 'react' ;
44import MenuBar from '@/components/widgets/MenuBar' ;
55import { PowerSyncYjsProvider } from '@/library/powersync/PowerSyncYjsProvider' ;
@@ -12,6 +12,7 @@ import StarterKit from '@tiptap/starter-kit';
1212import * as Y from 'yjs' ;
1313import './tiptap-styles.scss' ;
1414import { useParams } from 'react-router-dom' ;
15+ import { connector } from '@/components/providers/SystemProvider' ;
1516
1617export default function EditorPage ( ) {
1718 const powerSync = usePowerSync ( ) ;
@@ -24,6 +25,7 @@ export default function EditorPage() {
2425 }
2526
2627 const [ totalDocUpdates , setTotalDocUpdates ] = useState ( 0 ) ;
28+ const [ allowUploads , setAllowUploads ] = useState ( connector . enableUploads ) ;
2729
2830 const ydoc = useMemo ( ( ) => {
2931 return new Y . Doc ( ) ;
@@ -36,6 +38,10 @@ export default function EditorPage() {
3638 } ;
3739 } , [ ydoc , powerSync ] ) ;
3840
41+ useEffect ( ( ) => {
42+ connector . enableUploads = allowUploads ;
43+ } , [ allowUploads ] ) ;
44+
3945 // watch for total number of document updates changing to update the counter
4046 const { data : docUpdatesCount } = useQuery (
4147 'SELECT COUNT(*) as total_updates FROM document_updates WHERE document_id=?' ,
@@ -89,6 +95,10 @@ export default function EditorPage() {
8995 < Typography variant = "caption" display = "block" gutterBottom >
9096 { totalDocUpdates } total edit(s) in this document.
9197 </ Typography >
98+ < FormControlLabel
99+ control = { < Switch checked = { allowUploads } onChange = { ( e ) => setAllowUploads ( e . target . checked ) } /> }
100+ label = "Enable uploads"
101+ />
92102 </ Box >
93103 </ >
94104 ) }
0 commit comments