Skip to content

Commit 10599e5

Browse files
authored
Release 0.15.0 (#476)
2 parents 20cf169 + ed3304e commit 10599e5

22 files changed

+981
-793
lines changed

.env.example

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ NEXT_PUBLIC_DEV_MODE=false
88

99
# ------ Telemetry ------
1010

11+
# Optional: Set the domain for the Plausible analytics. If empty no analytics will be sent.
12+
NEXT_PUBLIC_PLAUSIBLE_DOMAIN=
13+
1114
# Optional: Set the log level ("error", "warn", "info", "debug"). Default to "info".
1215
NEXT_PUBLIC_LOG_LEVEL=info
1316

@@ -33,6 +36,11 @@ NEXT_PUBLIC_SENTRY_REPLAY_SESSION_SAMPLE_RATE=0.1
3336
# Optional. Number between 0 (0%) and 1.0 (100%), capture x% of the sessions in error for replay. Default to 1.0 (100%). Can keep it like this in Production, reduce it if too much noise or close to quota.
3437
NEXT_PUBLIC_SENTRY_REPLAYS_ON_ERROR_SAMPLE_RATE=1
3538

39+
# ------ Restricted access ------
40+
41+
# Optional: Set the feature flag to disabled ("true") or enabled ("false") the restricted access. Set to "false" by default (restricted access is enabled).
42+
NEXT_PUBLIC_FEATURE_FLAG_RESTRICTED_ACCESS_DISABLED=false
43+
3644
# ------ Verida Network ------
3745

3846
# Optional: Set the Verida Network ("myrtle", "banksia", "devnet", "local"). Default to "banksia".

CHANGELOG.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
1+
# 0.15.0 (2025-02-12)
2+
3+
## Enhancements
4+
5+
- Improve UI of Verida Auth
6+
7+
## Misc
8+
9+
- Add license
10+
- Set up Plausible integration
11+
- Update dependencies
12+
113
# 0.14.0 (2025-02-04)
214

315
## Enhancements

LICENSE

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
ISC License
2+
3+
Copyright (c) 2025, Verida
4+
5+
Permission to use, copy, modify, and/or distribute this software for any
6+
purpose with or without fee is hereby granted, provided that the above
7+
copyright notice and this permission notice appear in all copies.
8+
9+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10+
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11+
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12+
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13+
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14+
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15+
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

package.json

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
{
22
"name": "vault-web",
3-
"version": "0.14.0",
3+
"version": "0.15.0",
44
"private": true,
5+
"license": "ISC",
56
"scripts": {
67
"version": "npx genversion --es6 --double ./src/config/version.ts",
78
"postinstall": "yarn run version",
@@ -24,25 +25,25 @@
2425
"@dnd-kit/sortable": "^10.0.0",
2526
"@dnd-kit/utilities": "^3.2.2",
2627
"@hookform/resolvers": "^3.10.0",
27-
"@radix-ui/react-accordion": "^1.2.2",
28-
"@radix-ui/react-alert-dialog": "^1.1.5",
29-
"@radix-ui/react-avatar": "^1.1.2",
30-
"@radix-ui/react-checkbox": "^1.1.3",
28+
"@radix-ui/react-accordion": "^1.2.3",
29+
"@radix-ui/react-alert-dialog": "^1.1.6",
30+
"@radix-ui/react-avatar": "^1.1.3",
31+
"@radix-ui/react-checkbox": "^1.1.4",
3132
"@radix-ui/react-dialog": "1.0.5",
32-
"@radix-ui/react-dropdown-menu": "^2.1.5",
33-
"@radix-ui/react-label": "^2.1.1",
34-
"@radix-ui/react-navigation-menu": "^1.2.4",
35-
"@radix-ui/react-popover": "^1.1.5",
36-
"@radix-ui/react-progress": "^1.1.1",
37-
"@radix-ui/react-scroll-area": "^1.2.2",
38-
"@radix-ui/react-select": "^2.1.5",
39-
"@radix-ui/react-separator": "^1.1.1",
33+
"@radix-ui/react-dropdown-menu": "^2.1.6",
34+
"@radix-ui/react-label": "^2.1.2",
35+
"@radix-ui/react-navigation-menu": "^1.2.5",
36+
"@radix-ui/react-popover": "^1.1.6",
37+
"@radix-ui/react-progress": "^1.1.2",
38+
"@radix-ui/react-scroll-area": "^1.2.3",
39+
"@radix-ui/react-select": "^2.1.6",
40+
"@radix-ui/react-separator": "^1.1.2",
4041
"@radix-ui/react-slot": "^1.1.1",
41-
"@radix-ui/react-switch": "^1.1.2",
42-
"@radix-ui/react-tabs": "^1.1.2",
43-
"@radix-ui/react-toast": "^1.2.5",
44-
"@radix-ui/react-tooltip": "^1.1.7",
45-
"@sentry/nextjs": "^8.53.0",
42+
"@radix-ui/react-switch": "^1.1.3",
43+
"@radix-ui/react-tabs": "^1.1.3",
44+
"@radix-ui/react-toast": "^1.2.6",
45+
"@radix-ui/react-tooltip": "^1.1.8",
46+
"@sentry/nextjs": "^8.54.0",
4647
"@tanstack/query-sync-storage-persister": "^5.66.0",
4748
"@tanstack/react-query": "^5.66.0",
4849
"@tanstack/react-query-persist-client": "^5.66.0",
@@ -55,8 +56,9 @@
5556
"clsx": "^2.1.0",
5657
"cmdk": "1.0.4",
5758
"date-fns": "^4.1.0",
58-
"lucide-react": "^0.474.0",
59+
"lucide-react": "^0.475.0",
5960
"next": "^14.2.23",
61+
"next-plausible": "^3.12.4",
6062
"next-themes": "^0.4.4",
6163
"nuqs": "^2.3.2",
6264
"react": "^18.3.1",
@@ -67,15 +69,15 @@
6769
"remark-gfm": "^4.0.0",
6870
"tailwind-merge": "^2.6.0",
6971
"use-debounce": "^10.0.4",
70-
"usehooks-ts": "^3.1.0",
72+
"usehooks-ts": "^3.1.1",
7173
"zod": "^3.24.1"
7274
},
7375
"devDependencies": {
74-
"@sentry/types": "^8.53.0",
76+
"@sentry/types": "^8.54.0",
7577
"@tailwindcss/typography": "^0.5.16",
7678
"@tanstack/react-query-devtools": "^5.66.0",
7779
"@trivago/prettier-plugin-sort-imports": "^5.2.2",
78-
"@types/node": "^18.19.74",
80+
"@types/node": "^18.19.75",
7981
"@types/react": "^18.3.12",
8082
"@types/react-dom": "^18.3.1",
8183
"@types/react-transition-group": "^4.4.12",
@@ -89,7 +91,7 @@
8991
"file-loader": "^6.2.0",
9092
"genversion": "^3.2.0",
9193
"postcss": "^8.5.1",
92-
"prettier": "^3.4.2",
94+
"prettier": "^3.5.0",
9395
"prettier-plugin-tailwindcss": "^0.6.11",
9496
"tailwindcss": "^3.4.17",
9597
"tailwindcss-animate": "^1.0.7",

src/app/auth/page.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ export default function AuthPage() {
3333
</div>
3434
<VeridaIdentityDropdownMenu
3535
keepExpanded
36+
displayNotConnectedSkeleton
3637
hideDisconnect={false}
3738
hideFeedback={false}
3839
hideAuthorizedApps={true}

src/app/global-error.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import {
44
ErrorPageContent,
55
ErrorPageProps,
66
} from "@/components/error-page-content"
7+
import { PlausibleScript } from "@/features/plausible/PlausibleScript"
78
import { sora } from "@/styles/font"
89
import { cn } from "@/styles/utils"
910

@@ -12,6 +13,9 @@ export default function GlobalErrorPage(props: ErrorPageProps) {
1213

1314
return (
1415
<html>
16+
<head>
17+
<PlausibleScript />
18+
</head>
1519
<body className={cn("h-dvh", sora.variable)}>
1620
<ErrorPageContent error={error} reset={reset} hideNavigationButton />
1721
</body>

src/app/layout.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { commonConfig } from "@/config/common"
55
import { APP_DESCRIPTION, APP_NAME, APP_TITLE } from "@/constants/app"
66
import { BreakpointIndicator } from "@/features/dev/components/breakpoint-indicator"
77
import { ReactScan } from "@/features/dev/components/react-scan"
8+
import { PlausibleScript } from "@/features/plausible/PlausibleScript"
89
import { sora } from "@/styles/font"
910
import "@/styles/globals.css"
1011
import { cn } from "@/styles/utils"
@@ -49,6 +50,9 @@ export default function RootLayout(props: RootLayoutProps) {
4950

5051
return (
5152
<html lang="en" suppressHydrationWarning>
53+
<head>
54+
<PlausibleScript />
55+
</head>
5256
<body className={cn("h-dvh", sora.variable)}>
5357
<RootProviders>{children}</RootProviders>
5458
{commonConfig.DEV_MODE ? (

src/app/not-found.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,17 @@ import {
88
NotFoundBlockImage,
99
NotFoundBlockTitle,
1010
} from "@/components/ui/not-found"
11+
import { PlausibleScript } from "@/features/plausible/PlausibleScript"
1112
import { getRootPageRoute } from "@/features/routes/utils"
1213
import { sora } from "@/styles/font"
1314
import { cn } from "@/styles/utils"
1415

1516
export default function NotFoundPage() {
1617
return (
1718
<html>
19+
<head>
20+
<PlausibleScript />
21+
</head>
1822
<body className={cn("h-dvh", sora.variable)}>
1923
<div className="flex h-full flex-1 flex-col items-center justify-center p-4">
2024
<NotFoundBlock>

src/components/verida/verida-identity-dropdown-menu.tsx

Lines changed: 49 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ import { cn } from "@/styles/utils"
3535
export interface VeridaIdentityDropdownMenuProps
3636
extends Pick<React.ComponentProps<typeof Button>, "className"> {
3737
keepExpanded?: boolean
38+
displayNotConnectedSkeleton?: boolean
3839
hideDisconnect?: boolean
3940
hideAuthorizedApps?: boolean
4041
hideFeedback?: boolean
@@ -45,6 +46,7 @@ export function VeridaIdentityDropdownMenu(
4546
) {
4647
const {
4748
keepExpanded = false,
49+
displayNotConnectedSkeleton = false,
4850
hideDisconnect = false,
4951
hideAuthorizedApps = false,
5052
hideFeedback = false,
@@ -77,7 +79,13 @@ export function VeridaIdentityDropdownMenu(
7779
}, [router])
7880

7981
if (!isConnected) {
80-
return null
82+
return (
83+
<>
84+
{displayNotConnectedSkeleton ? (
85+
<VeridaIdentityNotConnectedDropdownMenuButton className={className} />
86+
) : null}
87+
</>
88+
)
8189
}
8290

8391
return (
@@ -220,3 +228,43 @@ export function VeridaIdentityDropdownMenu(
220228
)
221229
}
222230
VeridaIdentityDropdownMenu.displayName = "VeridaIdentityDropdownMenu"
231+
232+
interface VeridaIdentityNotConnectedDropdownMenuButtonProps
233+
extends Pick<React.ComponentProps<typeof Button>, "className"> {
234+
keepExpanded?: boolean
235+
}
236+
237+
function VeridaIdentityNotConnectedDropdownMenuButton(
238+
props: VeridaIdentityNotConnectedDropdownMenuButtonProps
239+
) {
240+
const { keepExpanded = false, className } = props
241+
242+
return (
243+
<Button
244+
variant="outline"
245+
disabled
246+
className={cn(
247+
"h-auto max-w-56 border-0",
248+
keepExpanded
249+
? "rounded-lg border py-2 pl-3 pr-2"
250+
: "rounded-full p-0 md:rounded-lg md:border md:py-2 md:pl-3 md:pr-2",
251+
className
252+
)}
253+
>
254+
<div className="flex w-full flex-row items-center gap-2">
255+
<div className="size-8 shrink-0 rounded-full border bg-surface-active" />
256+
<div>
257+
<Typography variant="base-semibold" className="italic">
258+
Not Connected
259+
</Typography>
260+
</div>
261+
<SimpleDown
262+
className={cn(
263+
"shrink-0 text-muted-foreground",
264+
keepExpanded ? "" : "hidden md:block"
265+
)}
266+
/>
267+
</div>
268+
</Button>
269+
)
270+
}

src/config/common.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,11 @@ const commonConfigCheckResult = CommonConfigSchema.safeParse({
77
// the code(like here). It also allows us to have shorter names.
88
BASE_URL: process.env.NEXT_PUBLIC_BASE_URL,
99
DEV_MODE: process.env.NEXT_PUBLIC_DEV_MODE,
10+
PLAUSIBLE_DOMAIN: process.env.NEXT_PUBLIC_PLAUSIBLE_DOMAIN,
1011
LOG_LEVEL: process.env.NEXT_PUBLIC_LOG_LEVEL,
1112
SENTRY_ENABLED: process.env.NEXT_PUBLIC_SENTRY_ENABLED,
13+
FEATURE_FLAG_RESTRICTED_ACCESS_DISABLED:
14+
process.env.NEXT_PUBLIC_FEATURE_FLAG_RESTRICTED_ACCESS_DISABLED,
1215
VERIDA_NETWORK: process.env.NEXT_PUBLIC_VERIDA_NETWORK,
1316
VERIDA_RPC_URL: process.env.NEXT_PUBLIC_VERIDA_RPC_URL,
1417
PRIVATE_DATA_API_BASE_URL: process.env.NEXT_PUBLIC_PRIVATE_DATA_API_BASE_URL,

0 commit comments

Comments
 (0)