Skip to content

Commit eca16b7

Browse files
authored
feat: add firmware beta release channel
* updated paths * organized components * connected logic for version control * dropdown modules * Custom header for modals * connected custom components * connected version control
1 parent af6ab35 commit eca16b7

File tree

26 files changed

+460
-276
lines changed

26 files changed

+460
-276
lines changed

src/components/Board/Board/Board.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { Component, Show } from 'solid-js'
22

33
export interface IProps {
44
onClick: () => void
5-
board: string
5+
label: string
66
description?: string
77
isActive?: boolean
88
}
@@ -24,7 +24,7 @@ export const Board: Component<IProps> = (props) => {
2424
props.onClick()
2525
}}>
2626
<div class="text-white text-[16px] leading-[20px] font-medium not-italic">
27-
<p>{props.board}</p>
27+
<p>{props.label}</p>
2828
</div>
2929
<Show when={props.description}>
3030
<div class="pt-[2px] text-white text-[12px] leading-[20px] font-normal not-italic max-w-[220px]">

src/components/Board/SelectBoard/SelectBoard.tsx

+18-35
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1-
import { Component, For, Show } from 'solid-js'
2-
import { Board } from '../Board/Board'
1+
import { Component, Show } from 'solid-js'
32
import { SelectButton } from '@components/Buttons/SelectButton'
3+
import Dropdown from '@components/Dropdown/Dropdown/Index'
4+
import DropdownList from '@components/Dropdown/DropdownList/Index'
5+
import { type IDropdownList } from '@interfaces/interfaces'
46

57
export interface IProps {
6-
boards: Array<{ board: string; description: string; debugMode?: boolean }>
8+
boards: IDropdownList[]
79
onSubmit: (board: string) => void
810
selectedBoard: string
911
firmwareVersion: string
@@ -13,45 +15,26 @@ export const SelectBoard: Component<IProps> = (props) => {
1315
return (
1416
<div class="relative w-[285px] p-[24px] rounded-[12px] border border-solid border-[#192736] bg-[#0D1B26]">
1517
<div class="flex flex-col gap-[10px]">
16-
<div class="flex justify-between">
17-
<div class="text-left text-[14px] text-white font-medium leading-[14px] not-italic">
18-
<p>Select board</p>
19-
</div>
20-
</div>
2118
<div>
22-
<div class="dropdown w-full">
19+
<Dropdown>
2320
<SelectButton
21+
header="Select board"
2422
tabIndex={0}
2523
type="button"
2624
label={!props.selectedBoard ? 'Select board' : props.selectedBoard}
2725
/>
28-
<div
26+
<DropdownList
27+
isScrollbar
28+
styles="dropdown-content right-[-25px] mt-[38px] p-[12px] rounded-[12px] border border-solid border-[#192736] bg-[#0D1B26] !w-[285px]"
29+
fallbackLabel="Looking for boards!"
30+
activeElement={props.selectedBoard}
31+
data={props.boards}
2932
tabIndex={0}
30-
class="dropdown-content right-[-25px] mt-[58px] p-[12px] rounded-[12px] border border-solid border-[#192736] bg-[#0D1B26] w-[285px]">
31-
<div class="overflow-y-scroll max-h-[250px] flex flex-col gap-[10px] w-full pr-[12px] scrollbar">
32-
<Show
33-
when={props.boards.length}
34-
fallback={
35-
<div class="flex flex-row gap-[6px]">
36-
<span class="loading loading-ring loading-md" />
37-
<p>Looking for boards!</p>
38-
</div>
39-
}>
40-
<For each={props.boards}>
41-
{(data) => (
42-
<Board
43-
isActive={props.selectedBoard === data.board}
44-
{...data}
45-
onClick={() => {
46-
props.onSubmit(data.board)
47-
}}
48-
/>
49-
)}
50-
</For>
51-
</Show>
52-
</div>
53-
</div>
54-
</div>
33+
onClick={(data) => {
34+
props.onSubmit(data.label)
35+
}}
36+
/>
37+
</Dropdown>
5538
<div class="pt-[10px] text-left text-[12px] text-white font-normal leading-[16px] not-italic">
5639
<div class="flex gap-[4px] items-center">
5740
<p>Firmware version:</p>

src/components/Buttons/SelectButton/index.tsx

+26-12
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,36 @@ export interface IProps {
55
label: string
66
onClick?: () => void
77
tabIndex?: number
8+
header: string
89
}
910

1011
export const SelectButton: Component<IProps> = (props) => {
1112
return (
12-
<button
13-
tabIndex={props.tabIndex}
14-
type={props.type}
15-
class="pl-[12px] pr-[12px] h-[39px] bg-[#192736] w-full rounded-[6px] border-solid border-1 border-[#192736] focus:border-817DF7 focus-visible:border-[#9793FD] hover:border-[#817DF7] cursor-pointer"
16-
onClick={(e) => {
17-
e.preventDefault()
18-
props.onClick?.()
19-
}}>
20-
<p class="text-left text-white text-[12px] font-normal leading-[20px] not-italic">
21-
{props.label}
22-
</p>
23-
</button>
13+
<div class="w-full">
14+
<div class="flex flex-col gap-[14px]">
15+
<div class=" w-full flex flex-col gap-[8px]">
16+
<div>
17+
<p class="text-left text-[14px] text-white font-normal leading-[20px] not-italic">
18+
{props.header}
19+
</p>
20+
</div>
21+
<div>
22+
<button
23+
tabIndex={props.tabIndex}
24+
type={props.type}
25+
class="pl-[12px] pr-[12px] h-[39px] bg-[#192736] w-full rounded-[6px] border-solid border-1 border-[#192736] focus:border-817DF7 focus-visible:border-[#9793FD] hover:border-[#817DF7] cursor-pointer"
26+
onClick={(e) => {
27+
e.preventDefault()
28+
props.onClick?.()
29+
}}>
30+
<p class="text-left text-white text-[12px] font-normal leading-[20px] not-italic">
31+
{props.label}
32+
</p>
33+
</button>
34+
</div>
35+
</div>
36+
</div>
37+
</div>
2438
)
2539
}
2640

src/components/Buttons/SettingsButton/index.tsx

-29
This file was deleted.

src/components/DebugMode/Debug/index.tsx

-68
This file was deleted.

src/components/DebugMode/DebugMode/index.tsx

-42
This file was deleted.

0 commit comments

Comments
 (0)