Skip to content

Commit c69b04c

Browse files
docs: add JSdoc to functions and return types for clarity (#248)
1 parent 4fe7413 commit c69b04c

File tree

79 files changed

+823
-683
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

79 files changed

+823
-683
lines changed

.vscode/settings.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"docwriter.progress.trackFunctions": true,
3+
"docwriter.style": "JSDoc",
4+
"docwriter.progress.trackClasses": true,
5+
"docwriter.progress.trackTypes": true
6+
}

public/brand_logo.svg

Lines changed: 1 addition & 0 deletions
Loading

public/next.svg

Lines changed: 0 additions & 1 deletion
This file was deleted.

public/vercel.svg

Lines changed: 0 additions & 1 deletion
This file was deleted.

src/components/Select.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { useRef, useState } from "react";
44
import Image from "next/image";
55
import Link from "next/link";
66
import { Categories } from "@/interfaces/Categories";
7-
import { cubeCollection } from "@/lib/cubeCollection";
7+
import { cubeCollection } from "@/lib/const/cubeCollection";
88
import genId from "@/lib/genId";
99
import { useTimerStore } from "@/store/timerStore";
1010
import findCube from "@/lib/findCube";

src/components/charts/LineCharter.tsx

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,13 @@ import { CreatePriceLineOptions, createChart } from "lightweight-charts";
55
import { useEffect, useRef } from "react";
66
import translation from "@/translations/global.json";
77
import getBestTime from "@/lib/getBestTime";
8+
import { ChartData } from "@/interfaces/ChartData";
89

910
type TimeObject = {
1011
time: number;
1112
value: number;
1213
};
1314

14-
interface ChartData {
15-
global: Solve[];
16-
session: Solve[];
17-
cubeSession: Solve[];
18-
cubeAll: Solve[];
19-
}
20-
2115
export default function LineCharter({
2216
data,
2317
cubeSelected,
@@ -75,9 +69,6 @@ export default function LineCharter({
7569
fixRightEdge: true,
7670
fixLeftEdge: true,
7771
},
78-
areaStyle: {
79-
lineColor: "black",
80-
},
8172
};
8273
const container = chartContainerRef.current;
8374
if (container) {

src/components/charts/PieCharter.tsx

Lines changed: 0 additions & 45 deletions
This file was deleted.

src/components/charts/RadarCharter.tsx

Lines changed: 0 additions & 36 deletions
This file was deleted.

src/components/cubes/BookmarkFav.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ export default function BookmarkFav({
77
cubeId,
88
}: {
99
isChecked: boolean;
10-
setFavorite: any;
10+
setFavorite: (cubeId: string) => void;
1111
cubeId: string;
1212
}) {
1313
const [checked, setChecked] = useState(isChecked);

src/components/cubes/CheckboxImage.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@ export default function CheckboxImage({
99
handleClickRadio,
1010
selectedCategory,
1111
}: {
12-
id: any;
12+
id: string | number;
1313
value: string;
14-
src: any;
14+
src: string;
1515
alt: string;
16-
handleClickRadio?: any;
16+
handleClickRadio?: (value: any) => void;
1717
selectedCategory: Categories;
1818
}) {
1919
return (
@@ -27,14 +27,14 @@ export default function CheckboxImage({
2727
>
2828
<input
2929
type="radio"
30-
id={id}
30+
id={`${id}`}
3131
name="category"
3232
value={value}
3333
className="hidden peer"
3434
required
3535
/>
3636
<label
37-
htmlFor={id}
37+
htmlFor={`${id}`}
3838
onClick={() => handleClickRadio && handleClickRadio(value)}
3939
>
4040
<Image src={src} alt={alt} draggable={false} />

src/components/cubes/ModalCreate.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { InputText } from "@/components/input-text/index";
22
import CheckboxImage from "@/components/cubes/CheckboxImage";
3-
import { cubeCollection } from "@/lib/cubeCollection";
3+
import { cubeCollection } from "@/lib/const/cubeCollection";
44
import genId from "@/lib/genId";
55
import translation from "@/translations/global.json";
66
import useModalCube from "@/hooks/useModalCube";

src/components/menu-settings/Menu.tsx

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import BellAlert from "@/icons/BellAlert";
55
import Clock from "@/icons/Clock";
66
import { useSettingsModalStore } from "@/store/SettingsModalStore";
77
import genId from "@/lib/genId";
8-
import { langCollection } from "@/lib/langCollection";
8+
import { langCollection } from "@/lib/const/langCollection";
99
import translation from "@/translations/global.json";
1010
import { Settings } from "@/interfaces/Settings";
1111
import { sort } from "fast-sort";
@@ -17,9 +17,9 @@ import { DataImportExport } from "@/components/menu-settings/DataImportExport";
1717
import { useTimerStore } from "@/store/timerStore";
1818
import Folder from "@/icons/Folder";
1919
import Shield from "@/icons/Shield";
20-
import GithubIcon from "@/icons/GithubIcon";
2120
import Link from "next/link";
2221
import useEscape from "@/hooks/useEscape";
22+
import Image from "next/image";
2323

2424
export default function MenuSettings() {
2525
const { settingsOpen, setSettingsOpen, settings, setSettings, lang } =
@@ -141,17 +141,17 @@ export default function MenuSettings() {
141141
title={translation.settings["about"][lang]}
142142
>
143143
<div className="flex flex-col justify-center items-center gap-3">
144+
<Image
145+
src={"/brand_logo.svg"}
146+
alt="logo"
147+
width={320}
148+
height={100}
149+
/>
150+
144151
<div className="text-center w-11/12 italic">
145152
&rdquo;{translation.settings["legend"][lang]}&rdquo;
146153
</div>
147154

148-
<Link
149-
href="https://github.com/bryanlundberg/NexusTimer"
150-
target="_blank"
151-
className="hover:text-zinc-500 transition duration-300"
152-
>
153-
<GithubIcon />
154-
</Link>
155155
<div className="flex gap-3 underline">
156156
<Link
157157
href="https://github.com/bryanlundberg/NexusTimer/issues"

src/components/scramble-display/ScrambleDisplay.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { useEffect } from "react";
22
import { TwistyPlayer, PuzzleID } from "cubing/twisty";
3-
import { cubeCollection } from "@/lib/cubeCollection";
3+
import { cubeCollection } from "@/lib/const/cubeCollection";
44

55
interface ScrambleDisplay {
66
className: string;

src/components/solves/ModalSolve.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { useTimerStore } from "@/store/timerStore";
66
import formatTime from "@/lib/formatTime";
77
import moveSolve from "@/lib/moveSolve";
88
import { ScrambleDisplay } from "@/components/scramble-display/index";
9-
import { cubeCollection } from "@/lib/cubeCollection";
9+
import { cubeCollection } from "@/lib/const/cubeCollection";
1010
import CalendarDays from "@/icons/CalentarDays";
1111
import useEscape from "@/hooks/useEscape";
1212
import { format } from "date-fns";

src/components/stats/CategoryStatistics.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -223,15 +223,15 @@ export default function CategoryStatistics() {
223223
/>
224224
<StatisticRow
225225
label={translation.metrics.cards["success-rate"][lang]}
226-
global={successRate.global === 0 ? "--" : successRate.global + "%"}
226+
global={successRate.global === "" ? "--" : successRate.global + "%"}
227227
session={
228-
successRate.session === 0 ? "--" : successRate.session + "%"
228+
successRate.session === "" ? "--" : successRate.session + "%"
229229
}
230230
cubeAll={
231-
successRate.cubeAll === 0 ? "--" : successRate.cubeAll + "%"
231+
successRate.cubeAll === "" ? "--" : successRate.cubeAll + "%"
232232
}
233233
cubeSession={
234-
successRate.cubeSession === 0
234+
successRate.cubeSession === ""
235235
? "--"
236236
: successRate.cubeSession + "%"
237237
}

src/components/timer/Timer.tsx

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import useTimer from "@/hooks/useTimer";
77
import Confetti from "react-dom-confetti";
88
import { useTimerStatistics } from "@/hooks/useTimerStatistics";
99
import useDeviceMatch from "@/hooks/useDeviceMatch";
10+
import { confettiConfig } from "@/lib/const/confettiConfig";
1011

1112
const timerStatusClasses = {
1213
IDLE: "light:text-neutral-900 dark:text-white",
@@ -16,20 +17,6 @@ const timerStatusClasses = {
1617
INSPECTING: "text-orange-500",
1718
};
1819

19-
const config: any = {
20-
angle: 90,
21-
spread: 180,
22-
startVelocity: 40,
23-
elementCount: 70,
24-
dragFriction: 0.12,
25-
duration: 5000,
26-
stagger: 3,
27-
width: "10px",
28-
height: "10px",
29-
perspective: "500px",
30-
colors: ["#a864fd", "#29cdff", "#78ff44", "#ff718d", "#fdff6a"],
31-
};
32-
3320
export default function Timer() {
3421
const { lang, settings } = useSettingsModalStore();
3522
const { selectedCube, isSolving, lastSolve, timerStatus, solvingTime } =
@@ -89,7 +76,7 @@ export default function Timer() {
8976
!isSolving &&
9077
settings.alerts.bestTime.status
9178
}
92-
config={config}
79+
config={confettiConfig}
9380
/>
9481
{lastSolve &&
9582
settings.features.quickActionButtons.status &&

src/hooks/useMetricsSwitch.ts

Lines changed: 15 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,18 @@
11
import { Categories } from "@/interfaces/Categories";
2-
import { Solve } from "@/interfaces/Solve";
32
import calcAoStatistics from "@/lib/calcAoStatistics";
43
import calcAverageStatistics from "@/lib/calcAverageStatistics";
54
import calcBestTime from "@/lib/calcBestTime";
65
import calcDeviation from "@/lib/calcDeviation";
76
import calcSuccessRate from "@/lib/calcSuccessRate";
87
import calcTimeSpentStatistics from "@/lib/calcTimeSpentStatistics";
98
import calcTotalSolvesStatistics from "@/lib/calcTotalSolvesStatistics";
10-
import { cubeCollection } from "@/lib/cubeCollection";
9+
import { cubeCollection } from "@/lib/const/cubeCollection";
10+
import {
11+
defaultChartValuesA,
12+
defaultChartValuesS,
13+
defaultChartValuesN,
14+
defaulCharAoValues,
15+
} from "@/lib/const/defaultChartValues";
1116
import getSolvesMetrics from "@/lib/getSolvesMetrics";
1217
import { useSettingsModalStore } from "@/store/SettingsModalStore";
1318
import { useTimerStore } from "@/store/timerStore";
@@ -27,35 +32,14 @@ export default function useMetricsSwitch() {
2732
best: false,
2833
});
2934

30-
const defaultValues: any = {
31-
global: 0,
32-
session: 0,
33-
cubeSession: 0,
34-
cubeAll: 0,
35-
};
36-
37-
interface ChartData {
38-
global: Solve[];
39-
session: Solve[];
40-
cubeSession: Solve[];
41-
cubeAll: Solve[];
42-
}
43-
44-
const defaultChartValues: ChartData = {
45-
global: [],
46-
session: [],
47-
cubeSession: [],
48-
cubeAll: [],
49-
};
50-
51-
const [average, setAverage] = useState(defaultValues);
52-
const [timeSpent, setTimeSpent] = useState(defaultValues);
53-
const [counter, setCounter] = useState(defaultValues);
54-
const [stats, setStats] = useState(defaultValues);
55-
const [deviation, setDeviation] = useState(defaultValues);
56-
const [successRate, setSuccessRate] = useState(defaultValues);
57-
const [best, setBest] = useState(defaultValues);
58-
const [data, setData] = useState(defaultChartValues);
35+
const [average, setAverage] = useState(defaultChartValuesN);
36+
const [timeSpent, setTimeSpent] = useState(defaultChartValuesS);
37+
const [counter, setCounter] = useState(defaultChartValuesN);
38+
const [stats, setStats] = useState(defaulCharAoValues);
39+
const [deviation, setDeviation] = useState(defaultChartValuesN);
40+
const [successRate, setSuccessRate] = useState(defaultChartValuesS);
41+
const [best, setBest] = useState(defaultChartValuesN);
42+
const [data, setData] = useState(defaultChartValuesA);
5943

6044
const categoryOptions = loadCategoryOptions();
6145
const cubeOptions = loadCubeOptions();

0 commit comments

Comments
 (0)