Skip to content

Commit a542ac1

Browse files
Merge branch 'main' into feature/better-style
2 parents b40b920 + c22bf3d commit a542ac1

File tree

16 files changed

+87
-86
lines changed

16 files changed

+87
-86
lines changed

.release-please-manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{".":"1.22.0"}
1+
{".":"1.23.0"}

CHANGELOG.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,19 @@
11
# Changelog
22

3+
## [1.23.0](https://github.com/iExecBlockchainComputing/explorer-v2/compare/iexec-explorer-v1.22.1...iexec-explorer-v1.23.0) (2025-10-06)
4+
5+
6+
### 🚀 Features
7+
8+
* implement light mode and light/dark/system mode switch ([#69](https://github.com/iExecBlockchainComputing/explorer-v2/issues/69)) ([669cedc](https://github.com/iExecBlockchainComputing/explorer-v2/commit/669cedcb0bc04b49f4adbbec035cc933a3646ded))
9+
10+
## [1.22.1](https://github.com/iExecBlockchainComputing/explorer-v2/compare/iexec-explorer-v1.22.0...iexec-explorer-v1.22.1) (2025-09-26)
11+
12+
13+
### 🐞 Bug Fixes
14+
15+
* remove redundant address details loading UI elements ([#73](https://github.com/iExecBlockchainComputing/explorer-v2/issues/73)) ([9697d7c](https://github.com/iExecBlockchainComputing/explorer-v2/commit/9697d7ca68100e71805ec28226b27205ff8d8a18))
16+
317
## [1.22.0](https://github.com/iExecBlockchainComputing/explorer-v2/compare/iexec-explorer-v1.21.0...iexec-explorer-v1.22.0) (2025-09-25)
418

519

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "iexec-explorer",
33
"private": true,
4-
"version": "1.22.0",
4+
"version": "1.23.0",
55
"type": "module",
66
"scripts": {
77
"dev": "vite",

src/components/ModeToggle.tsx

Lines changed: 41 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,53 @@
11
import { cn } from '@/lib/utils';
22
import { Monitor, Moon, Sun } from 'lucide-react';
3+
import { useMemo } from 'react';
34
import { useTheme } from '@/components/themeProvider';
45
import { Button } from '@/components/ui/button';
56

7+
type Theme = 'dark' | 'light' | 'system';
8+
69
export function ModeToggle() {
710
const { theme, setTheme } = useTheme();
811

12+
const options: Array<{
13+
value: Theme;
14+
label: string;
15+
Icon: React.ComponentType;
16+
}> = useMemo(
17+
() => [
18+
{ value: 'system', label: 'System', Icon: Monitor },
19+
{ value: 'light', label: 'Light', Icon: Sun },
20+
{ value: 'dark', label: 'Dark', Icon: Moon },
21+
],
22+
[]
23+
);
24+
925
return (
10-
<div className="flex rounded-full border p-1">
11-
<Button
12-
variant={'link'}
13-
size={'none'}
14-
className={cn(
15-
'text-foreground hover:bg-muted border p-1',
16-
theme === 'dark' ? 'border' : 'border-transparent'
17-
)}
18-
onClick={() => setTheme('dark')}
19-
>
20-
<Moon />
21-
</Button>
22-
<Button
23-
variant={'link'}
24-
size={'none'}
25-
className={cn(
26-
'text-foreground hover:bg-muted border p-1',
27-
theme === 'light' ? 'border' : 'border-transparent'
28-
)}
29-
onClick={() => setTheme('light')}
30-
>
31-
<Sun />
32-
</Button>
33-
<Button
34-
variant={'link'}
35-
size={'none'}
36-
className={cn(
37-
'text-foreground hover:bg-muted border p-1',
38-
theme === 'system' ? 'border' : 'border-transparent'
39-
)}
40-
onClick={() => setTheme('system')}
41-
>
42-
<Monitor />
43-
</Button>
26+
<div className="flex items-center rounded-full border p-1">
27+
{options.map(({ value, label, Icon }) => {
28+
const selected = theme === value;
29+
return (
30+
<Button
31+
key={value}
32+
type="button"
33+
variant="link"
34+
size="none"
35+
role="radio"
36+
aria-checked={selected}
37+
aria-label={label}
38+
title={label}
39+
className={cn(
40+
'text-foreground hover:bg-muted p-1',
41+
selected && 'bg-transparent'
42+
)}
43+
onClick={() => {
44+
if (theme !== value) setTheme(value as Theme);
45+
}}
46+
>
47+
<Icon />
48+
</Button>
49+
);
50+
})}
4451
</div>
4552
);
4653
}

src/components/SmartLinkGroup.tsx

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -102,11 +102,7 @@ export default function SmartLinkGroup({
102102
<TooltipProvider delayDuration={0}>
103103
<Tooltip>
104104
<TooltipTrigger asChild>
105-
<Button
106-
variant="link"
107-
className="h-auto p-0! text-sm text-white"
108-
asChild
109-
>
105+
<Button variant="link" className="h-auto p-0! text-sm" asChild>
110106
<a
111107
href={`${getBlockExplorerUrl(chainId)}/${blockExplorerPath[type]}`}
112108
target="_blank"

src/components/navbar/NavBar.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -74,12 +74,12 @@ export function Navbar() {
7474
checked={isMenuOpen}
7575
readOnly
7676
/>
77-
<span className="pointer-events-none block h-0.5 w-4.5 origin-right transform rounded-full bg-white duration-200 group-has-[:checked]/checkbox:mt-[0.5px] group-has-[:checked]/checkbox:-rotate-45"></span>
78-
<span className="pointer-events-none block h-0.5 w-4.5 origin-top-right transform rounded-full bg-white duration-200 group-has-[:checked]/checkbox:scale-x-0"></span>
79-
<span className="pointer-events-none block h-0.5 w-4.5 origin-right transform rounded-full bg-white duration-200 group-has-[:checked]/checkbox:mb-[0.5px] group-has-[:checked]/checkbox:rotate-45"></span>
77+
<span className="bg-foreground pointer-events-none block h-0.5 w-4.5 origin-right transform rounded-full duration-200 group-has-[:checked]/checkbox:mt-[0.5px] group-has-[:checked]/checkbox:-rotate-45"></span>
78+
<span className="bg-foreground pointer-events-none block h-0.5 w-4.5 origin-top-right transform rounded-full duration-200 group-has-[:checked]/checkbox:scale-x-0"></span>
79+
<span className="bg-foreground pointer-events-none block h-0.5 w-4.5 origin-right transform rounded-full duration-200 group-has-[:checked]/checkbox:mb-[0.5px] group-has-[:checked]/checkbox:rotate-45"></span>
8080
</label>
8181

82-
<div className="border-secondary bg-primary-foreground pointer-events-auto fixed inset-y-0 left-0 z-10 flex w-full -translate-x-full flex-col overflow-auto rounded-r-3xl border-r px-6 pt-6 duration-200 group-has-[:checked]:translate-x-0 lg:w-[255px] lg:translate-x-0">
82+
<div className="border-secondary bg-background pointer-events-auto fixed inset-y-0 left-0 z-10 flex w-full -translate-x-full flex-col overflow-auto rounded-r-3xl border-r px-6 pt-6 duration-200 group-has-[:checked]:translate-x-0 lg:w-[255px] lg:translate-x-0">
8383
<div className="-m-2 mr-6 flex items-center justify-between gap-2 py-2 pl-2">
8484
<ChainLink to="/" className="font-mono" onClick={handleMenuToggle}>
8585
<img src={iExecLogo} width="25" height="25" alt="iExec logo" />

src/config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ export const SUPPORTED_CHAINS = [
1818
id: 134,
1919
name: 'Bellecour',
2020
slug: 'bellecour',
21-
color: '#F4942566',
21+
color: '#95A4FC',
2222
icon: iexecLogo,
2323
blockExplorerUrl: 'https://blockscout-bellecour.iex.ec',
2424
subgraphUrl: {

src/index.css

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -286,13 +286,16 @@
286286
body {
287287
@apply bg-background text-foreground;
288288
}
289-
h1,
289+
h1 {
290+
@apply font-anybody font-semibold;
291+
}
292+
290293
h2,
291294
h3,
292295
h4,
293296
h5,
294297
h6 {
295-
@apply font-anybody font-semibold;
298+
@apply font-sans font-semibold;
296299
}
297300
button,
298301
a {

src/modules/datasets/SchemaSearch.tsx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -104,14 +104,14 @@ export function SchemaSearch({
104104
<span className={cn('inline-block')}>{schema.path}</span>
105105
<span className={cn('inline-block')}>: {schema.type}</span>
106106
<button onClick={() => onRemoveFilter(index)}>
107-
<X className="ml-1 text-white" size={12} />
107+
<X className="ml-1" size={12} />
108108
</button>
109109
</span>
110110
);
111111
})}
112112
{filters.length > 0 && (
113113
<button
114-
className="text-xs text-white"
114+
className="text-xs"
115115
type="button"
116116
onClick={onClearAllFilters}
117117
>
@@ -129,13 +129,13 @@ export function SchemaSearch({
129129
value={inputPathValue}
130130
onChange={(e) => setInputPathValue(e.target.value)}
131131
className={cn(
132-
'bg-muted border-secondary col-span-2 w-full rounded-2xl px-4 py-6 text-sm text-white'
132+
'bg-muted border-secondary col-span-2 w-full rounded-2xl px-4 py-6 text-sm'
133133
)}
134134
placeholder="Field path (e.g email, telegram_chatId, nested)"
135135
/>
136136

137137
<Select value={selectedType} onValueChange={setSelectedType}>
138-
<SelectTrigger className="bg-muted border-secondary w-full rounded-2xl px-4 py-6 text-sm text-white sm:max-w-1/3">
138+
<SelectTrigger className="bg-muted border-secondary w-full rounded-2xl px-4 py-6 text-sm sm:max-w-1/3">
139139
<SelectValue placeholder="Select type" />
140140
</SelectTrigger>
141141
<SelectContent className="bg-muted border-secondary overflow-visible p-6">
@@ -144,13 +144,13 @@ export function SchemaSearch({
144144
key={group.label}
145145
className="overflow-visible not-first:mt-2"
146146
>
147-
<SelectLabel className="text-grey-300 text-sm">
147+
<SelectLabel className="text-muted-foreground text-sm">
148148
{group.label}
149149
</SelectLabel>
150150
{group.items.map((type) => (
151151
<SelectItem
152152
key={type.value}
153-
className="text-base font-bold data-[state=checked]:text-yellow-400"
153+
className="data-[state=checked]:text-primary text-base font-bold"
154154
value={type.value}
155155
>
156156
{type.value}

0 commit comments

Comments
 (0)