Newer
Older
NocodeToolOnRDL / src / App.tsx
@Sakoda2269 Sakoda2269 11 days ago 1 KB reactに移行完了
import Header from "./components/header";
import Workspace from "./components/workspace";
import { useComponent } from "./hooks/useComponent";
import { useScreen } from "./hooks/useScreen"
import { useTables } from "./hooks/useTables";

function App() {

  const projectData = {
      id: "",
      title: "",
      detail: "",
      createdTime: "",
      updatedTime: "",
      screens: [
          {
              id: "screen1",
              components: [],
              index: 0,
              name: "screen1",
              projectId: ""
          }
      ],
      tables: []
  }
  
  const {
    screenData,
    screenActions,
    screenDispatch
  } = useScreen(projectData);
  
  const {
    componentData,
    componentActions,
    componentDispatch
  } = useComponent(screenData.curScreenIndex, screenData.curScreen, screenDispatch.setScreens);
  
  const {
    tableData,
    tableActions
  } = useTables(projectData);
  
  return (
    <div className="h-screen flex flex-col overflow-hidden">
      <Header projectData={{
        ...projectData, screens: screenData.screens, tables: tableData.tables
      }} />
      <div className="flex-1 overflow-hidden">
        <Workspace 
          screenDataAndActions={{screenActions, screenData, screenDispatch}}
          componentDataAndActions={{componentActions, componentData, componentDispatch}}
          tableDataAndActions={{tableData, tableActions}}
        />
      </div>
    </div>
  )
}

export default App