Add a visualizer #119

Merged
maxime.batista merged 4 commits from visualizer into master 1 year ago
There is no content yet.
maxime.batista added 3 commits 1 year ago
continuous-integration/drone/push Build is passing Details
f987f351cd
fix steps in visualizer
maxime.batista requested review from clement.freville2 1 year ago
maxime.batista requested review from yanis.dahmane-bounoua 1 year ago
maxime.batista requested review from vivien.dufour 1 year ago
maxime.batista requested review from mael.daim 1 year ago
maxime.batista requested review from samuel.berion 1 year ago
maxime.batista added 1 commit 1 year ago
continuous-integration/drone/push Build is passing Details
7e8a15398c
fix steps in visualizer
clement.freville2 approved these changes 1 year ago
//force update once the court reference is set
useEffect(() => {
setCourt(courtRef.current)

Note that React accept a RefCallback<T> instead of a RefObject<T>, that may be used with a state instead of reference, that would trigger a rerender.

Note that React accept a `RefCallback<T>` instead of a `RefObject<T>`, that may be used with a state instead of reference, that would trigger a rerender.
maxime.batista marked this conversation as resolved
<PlainCourt className="court-image" />
) : (
<HalfCourt className="court-image" />
)}
-export function Court({ courtType }: { courtType: string }) {
+export function Court({ courtType }: { courtType: CourtType }) {
+    const CourtSvg = courtType === "PLAIN" ? PlainCourt : HalfCourt
     return (
         <div className="court-image-div">
-            {courtType == "PLAIN" ? (
-                <PlainCourt className="court-image" />
-            ) : (
-                <HalfCourt className="court-image" />
-            )}
+            <CourtSvg className="court-image" />
```diff -export function Court({ courtType }: { courtType: string }) { +export function Court({ courtType }: { courtType: CourtType }) { + const CourtSvg = courtType === "PLAIN" ? PlainCourt : HalfCourt return ( <div className="court-image-div"> - {courtType == "PLAIN" ? ( - <PlainCourt className="court-image" /> - ) : ( - <HalfCourt className="court-image" /> - )} + <CourtSvg className="court-image" /> ```
maxime.batista marked this conversation as resolved
parentContent: StepContent | null
}
export enum VisualizerStateActionKind {
-export enum VisualizerStateActionKind {
+export const enum VisualizerStateActionKind {

Those enums may be inlined as numbers, without const it would generate a object to map at runtime strings to int.

```diff -export enum VisualizerStateActionKind { +export const enum VisualizerStateActionKind { ``` Those enums may be inlined as numbers, without `const` it would [generate a object to map at runtime ](https://www.typescriptlang.org/play?#code/KYOwrgtgBAaglgZzAQwDZwF7AE4GUAuy+wAggMb5wD2IA0nCACZQDeAUFJ1AJIBy3AFQA0HLrgCiAgPoBhAPK8B4xbhEBfIA)strings to int.
maxime.batista marked this conversation as resolved
stepId: number
}
export function visualizerStateReducer(
-export function visualizerStateReducer(
+export function useVisualizer(
+    initialState: VisualizerState | null,
+): [VisualizerState | null, (action: VisualizerStateAction) => void] {
+    return useReducer(visualizerStateReducer, initialState)
+}
+
+function visualizerStateReducer(

Expose the already configured reducer preferably.

```diff -export function visualizerStateReducer( +export function useVisualizer( + initialState: VisualizerState | null, +): [VisualizerState | null, (action: VisualizerStateAction) => void] { + return useReducer(visualizerStateReducer, initialState) +} + +function visualizerStateReducer( ``` Expose the already configured reducer preferably.
maxime.batista marked this conversation as resolved
maxime.batista added 1 commit 1 year ago
continuous-integration/drone/push Build is passing Details
2e1efeeb25
Apply suggestion
maxime.batista force-pushed visualizer from 2e1efeeb25 to f9e436ea12 1 year ago
maxime.batista merged commit 3da28f828d into master 1 year ago
maxime.batista deleted branch visualizer 1 year ago

Reviewers

samuel.berion was requested for review 1 year ago
vivien.dufour was requested for review 1 year ago
mael.daim was requested for review 1 year ago
yanis.dahmane-bounoua was requested for review 1 year ago
clement.freville2 approved these changes 1 year ago
continuous-integration/drone/push Build is passing
The pull request has been merged as 3da28f828d.
Sign in to join this conversation.
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date

No due date set.

Dependencies

No dependencies set.

Reference: IQBall/Application-Web#119
Loading…
There is no content yet.