Skip to content

Commit

Permalink
Merge pull request #5670 from roc-lang/checkmate-ui-scaffold
Browse files Browse the repository at this point in the history
Checkmate UI scaffold
  • Loading branch information
ayazhafiz committed Jul 24, 2023
2 parents b71c901 + 84165d2 commit d3ccdb5
Show file tree
Hide file tree
Showing 24 changed files with 2,748 additions and 11 deletions.
4 changes: 4 additions & 0 deletions crates/compiler/checkmate/www/.vim/coc-settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"tsserver.useLocalTsdk": true,
"tsserver.tsdk": "${workspaceFolder}/node_modules/typescript/lib"
}
511 changes: 509 additions & 2 deletions crates/compiler/checkmate/www/package-lock.json

Large diffs are not rendered by default.

6 changes: 5 additions & 1 deletion crates/compiler/checkmate/www/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,10 @@
"version": "0.1.0",
"private": true,
"dependencies": {
"@dagrejs/dagre": "^1.0.2",
"react": "^18.2.0",
"react-dom": "^18.2.0"
"react-dom": "^18.2.0",
"reactflow": "^11.7.4"
},
"scripts": {
"start": "react-scripts start",
Expand Down Expand Up @@ -37,9 +39,11 @@
"@types/node": "^16.18.38",
"@types/react": "^18.2.15",
"@types/react-dom": "^18.2.7",
"clsx": "^2.0.0",
"json-schema-to-typescript": "^13.0.2",
"react-scripts": "5.0.1",
"tailwindcss": "^3.3.3",
"tiny-typed-emitter": "^2.1.0",
"typescript": "^4.9.5"
}
}
38 changes: 32 additions & 6 deletions crates/compiler/checkmate/www/src/App.tsx
Original file line number Diff line number Diff line change
@@ -1,13 +1,39 @@
import React from "react";
import FileInput, { LoadedEvents } from "./components/FileInput";
import Ui from "./components/Ui";
import data from "./checkmate.json";
import { AllEvents } from "./schema";

export default function App() {
const [events, setEvents] = React.useState<LoadedEvents | null>({
kind: "ok",
events: data as AllEvents,
});

return (
<div className="App">
<header className="App-header">
<p>
Edit <code>src/App.tsx</code> and save to reload.
</p>
</header>
<div className="w-screen h-screen p-2 bg-gray-100 flex flex-col">
<div>
<FileInput setResult={setEvents} />
</div>
<div className="flex-1 overflow-hidden">
<EventsWrapper events={events} />
</div>
</div>
);
}

interface EventsWrapperProps {
events: LoadedEvents | null;
}

function EventsWrapper({ events }: EventsWrapperProps): JSX.Element {
if (events === null) {
return <div></div>;
}
switch (events.kind) {
case "ok":
return <Ui events={events.events} />;
case "err":
return <div className="text-red-400 text-lg">{events.error}</div>;
}
}
Loading

0 comments on commit d3ccdb5

Please sign in to comment.