Skip to content

Commit d5a4f40

Browse files
committed
Merge branch 'master' into stylelint
2 parents fb5648c + 608a102 commit d5a4f40

7 files changed

Lines changed: 277 additions & 136 deletions

File tree

frontend/__tests__/commandline/util.spec.ts

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,9 @@ describe("CommandlineUtils", () => {
153153
},
154154
},
155155
configMeta: {
156-
icon: "icon",
156+
fa: {
157+
icon: "fa-keyboard",
158+
},
157159
},
158160
schema,
159161
});
@@ -173,8 +175,10 @@ describe("CommandlineUtils", () => {
173175
defaultValue: expect.anything(),
174176
alias: "alias",
175177
input: true,
176-
icon: "icon",
178+
icon: "fa-keyboard",
177179
exec: expect.anything(),
180+
hover: undefined,
181+
configValue: undefined,
178182
inputValueConvert: Number,
179183
validation: expect.anything(),
180184
});
@@ -198,7 +202,9 @@ describe("CommandlineUtils", () => {
198202
},
199203
},
200204
configMeta: {
201-
icon: "icon",
205+
fa: {
206+
icon: "fa-keyboard",
207+
},
202208
},
203209
schema,
204210
});
@@ -210,7 +216,7 @@ describe("CommandlineUtils", () => {
210216
display: "custom test...",
211217
alias: "alias",
212218
input: true,
213-
icon: "icon",
219+
icon: "fa-keyboard",
214220
}),
215221
);
216222
});

frontend/src/ts/commandline/util.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ function buildCommandWithSubgroup<K extends keyof ConfigSchemas.Config>(
136136
return {
137137
id: `change${capitalizeFirstLetter(key)}`,
138138
display: display,
139-
icon: configMeta?.icon ?? "fa-cog",
139+
icon: configMeta?.fa?.icon ?? "fa-cog",
140140
subgroup: {
141141
title: display,
142142
configKey: key,
@@ -230,7 +230,7 @@ function buildInputCommand<K extends keyof ConfigSchemas.Config>({
230230
display: displayString,
231231
alias: inputProps?.alias ?? undefined,
232232
input: true,
233-
icon: configMeta.icon ?? "fa-cog",
233+
icon: configMeta?.fa?.icon ?? "fa-cog",
234234

235235
//@ts-expect-error this is fine
236236
exec: ({ input }): void => {

frontend/src/ts/components/pages/test/TestConfig.tsx

Lines changed: 21 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { ComponentProps, For, JSXElement, Show } from "solid-js";
22

3+
import { configMetadata } from "../../../config/metadata";
34
import { setConfig, setQuoteLengthAll } from "../../../config/setters";
45
import { getConfig } from "../../../config/store";
56
import { restartTestEvent } from "../../../events/test";
@@ -8,7 +9,7 @@ import { useRefWithUtils } from "../../../hooks/useRefWithUtils";
89
import { isLoggedIn } from "../../../states/core";
910
import { showModal } from "../../../states/modals";
1011
import { getResultVisible, getFocus } from "../../../states/test";
11-
import { FaSolidIcon } from "../../../types/font-awesome";
12+
import { FaObject } from "../../../types/font-awesome";
1213
import { areUnsortedArraysEqual } from "../../../utils/arrays";
1314
import { cn } from "../../../utils/cn";
1415
import { Anime, AnimeShow } from "../../common/anime";
@@ -59,7 +60,7 @@ export function TestConfig(): JSXElement {
5960
}
6061

6162
function TCButton(props: {
62-
icon: FaSolidIcon;
63+
fa: FaObject;
6364
text: string;
6465
active?: boolean;
6566
disabled?: boolean;
@@ -69,7 +70,7 @@ function TCButton(props: {
6970
<Button
7071
variant="text"
7172
class={cn(buttonClass)}
72-
fa={{ icon: props.icon, fixedWidth: true }}
73+
fa={{ ...props.fa, fixedWidth: true }}
7374
text={props.text}
7475
active={props.active}
7576
onClick={props.onClick}
@@ -79,10 +80,7 @@ function TCButton(props: {
7980
}
8081

8182
function PuncAndNum(): JSXElement {
82-
const buttons = [
83-
{ icon: "fa-at", configKey: "punctuation" },
84-
{ icon: "fa-hashtag", configKey: "numbers" },
85-
] as const;
83+
const buttons = ["punctuation", "numbers"] as const;
8684

8785
return (
8886
<Anime
@@ -96,10 +94,10 @@ function PuncAndNum(): JSXElement {
9694
<AnimeShow when={getConfig.mode !== "zen"} duration={durationMs}>
9795
<div class={cardClass}>
9896
<For each={buttons}>
99-
{({ icon, configKey }) => (
97+
{(configKey) => (
10098
<TCButton
101-
icon={icon}
102-
text={configKey}
99+
fa={configMetadata[configKey].fa}
100+
text={configMetadata[configKey].displayString ?? configKey}
103101
active={getConfig[configKey]}
104102
disabled={
105103
getConfig.mode === "zen" || getConfig.mode === "quote"
@@ -118,24 +116,24 @@ function PuncAndNum(): JSXElement {
118116
}
119117

120118
function Mode(): JSXElement {
121-
const modes = [
122-
{ icon: "fa-clock", mode: "time" },
123-
{ icon: "fa-font", mode: "words" },
124-
{ icon: "fa-quote-left", mode: "quote" },
125-
{ icon: "fa-mountain", mode: "zen" },
126-
{ icon: "fa-wrench", mode: "custom" },
127-
] as const;
119+
const modeOptions = ["time", "words", "quote", "zen", "custom"] as const;
128120

129121
return (
130122
<div class={cn("z-2", cardClass)}>
131-
<For each={modes}>
132-
{({ icon, mode }) => (
123+
<For each={modeOptions}>
124+
{(modeOption) => (
133125
<TCButton
134-
icon={icon}
135-
text={mode}
136-
active={getConfig.mode === mode}
126+
fa={
127+
configMetadata.mode.optionsMetadata?.[modeOption]?.fa ??
128+
configMetadata.mode.fa
129+
}
130+
text={
131+
configMetadata.mode.optionsMetadata?.[modeOption]
132+
?.displayString ?? modeOption
133+
}
134+
active={getConfig.mode === modeOption}
137135
onClick={() => {
138-
setConfig("mode", mode);
136+
setConfig("mode", modeOption);
139137
restartTestEvent.dispatch();
140138
}}
141139
/>

0 commit comments

Comments
 (0)