mirror of
https://github.com/homarr-labs/dashboard-icons.git
synced 2026-01-12 16:25:38 +08:00
Merge pull request #2764 from homarr-labs/refactor/remove-experimental-warnings
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -34,4 +34,5 @@ Temporary Items
|
||||
# Python
|
||||
__pycache__/
|
||||
|
||||
node_modules/
|
||||
node_modules/
|
||||
.cursor/commands
|
||||
@@ -67,7 +67,7 @@
|
||||
"input-otp": "^1.4.2",
|
||||
"lucide-react": "^0.553.0",
|
||||
"motion": "^12.23.24",
|
||||
"next": "16.0.9",
|
||||
"next": "16.1.1",
|
||||
"next-themes": "^0.4.6",
|
||||
"pocketbase": "^0.26.4",
|
||||
"posthog-js": "^1.301.1",
|
||||
|
||||
89
web/pnpm-lock.yaml
generated
89
web/pnpm-lock.yaml
generated
@@ -13,7 +13,7 @@ importers:
|
||||
version: 5.2.1(react-hook-form@7.68.0(react@19.2.1))
|
||||
'@posthog/nextjs-config':
|
||||
specifier: ^1.6.3
|
||||
version: 1.6.3(next@16.0.9(@playwright/test@1.57.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))
|
||||
version: 1.6.3(next@16.1.1(@playwright/test@1.57.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))
|
||||
'@radix-ui/react-accordion':
|
||||
specifier: ^1.2.12
|
||||
version: 1.2.12(@types/react-dom@19.2.3(@types/react@19.2.5))(@types/react@19.2.5)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
|
||||
@@ -144,8 +144,8 @@ importers:
|
||||
specifier: ^12.23.24
|
||||
version: 12.23.24(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
|
||||
next:
|
||||
specifier: 16.0.9
|
||||
version: 16.0.9(@playwright/test@1.57.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
|
||||
specifier: 16.1.1
|
||||
version: 16.1.1(@playwright/test@1.57.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
|
||||
next-themes:
|
||||
specifier: ^0.4.6
|
||||
version: 0.4.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
|
||||
@@ -482,53 +482,53 @@ packages:
|
||||
'@jridgewell/trace-mapping@0.3.29':
|
||||
resolution: {integrity: sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==}
|
||||
|
||||
'@next/env@16.0.9':
|
||||
resolution: {integrity: sha512-6284pl8c8n9PQidN63qjPVEu1uXXKjnmbmaLebOzIfTrSXdGiAPsIMRi4pk/+v/ezqweE1/B8bFqiAAfC6lMXg==}
|
||||
'@next/env@16.1.1':
|
||||
resolution: {integrity: sha512-3oxyM97Sr2PqiVyMyrZUtrtM3jqqFxOQJVuKclDsgj/L728iZt/GyslkN4NwarledZATCenbk4Offjk1hQmaAA==}
|
||||
|
||||
'@next/swc-darwin-arm64@16.0.9':
|
||||
resolution: {integrity: sha512-j06fWg/gPqiWjK+sEpCDsh5gX+Bdy9gnPYjFqMBvBEOIcCFy1/ecF6pY6XAce7WyCJAbBPVb+6GvpmUZKNq0oQ==}
|
||||
'@next/swc-darwin-arm64@16.1.1':
|
||||
resolution: {integrity: sha512-JS3m42ifsVSJjSTzh27nW+Igfha3NdBOFScr9C80hHGrWx55pTrVL23RJbqir7k7/15SKlrLHhh/MQzqBBYrQA==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [arm64]
|
||||
os: [darwin]
|
||||
|
||||
'@next/swc-darwin-x64@16.0.9':
|
||||
resolution: {integrity: sha512-FRYYz5GSKUkfvDSjd5hgHME2LgYjfOLBmhRVltbs3oRNQQf9n5UTQMmIu/u5vpkjJFV4L2tqo8duGqDxdQOFwg==}
|
||||
'@next/swc-darwin-x64@16.1.1':
|
||||
resolution: {integrity: sha512-hbyKtrDGUkgkyQi1m1IyD3q4I/3m9ngr+V93z4oKHrPcmxwNL5iMWORvLSGAf2YujL+6HxgVvZuCYZfLfb4bGw==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [x64]
|
||||
os: [darwin]
|
||||
|
||||
'@next/swc-linux-arm64-gnu@16.0.9':
|
||||
resolution: {integrity: sha512-EI2klFVL8tOyEIX5J1gXXpm1YuChmDy4R+tHoNjkCHUmBJqXioYErX/O2go4pEhjxkAxHp2i8y5aJcRz2m5NqQ==}
|
||||
'@next/swc-linux-arm64-gnu@16.1.1':
|
||||
resolution: {integrity: sha512-/fvHet+EYckFvRLQ0jPHJCUI5/B56+2DpI1xDSvi80r/3Ez+Eaa2Yq4tJcRTaB1kqj/HrYKn8Yplm9bNoMJpwQ==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
|
||||
'@next/swc-linux-arm64-musl@16.0.9':
|
||||
resolution: {integrity: sha512-vq/5HeGvowhDPMrpp/KP4GjPVhIXnwNeDPF5D6XK6ta96UIt+C0HwJwuHYlwmn0SWyNANqx1Mp6qSVDXwbFKsw==}
|
||||
'@next/swc-linux-arm64-musl@16.1.1':
|
||||
resolution: {integrity: sha512-MFHrgL4TXNQbBPzkKKur4Fb5ICEJa87HM7fczFs2+HWblM7mMLdco3dvyTI+QmLBU9xgns/EeeINSZD6Ar+oLg==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
|
||||
'@next/swc-linux-x64-gnu@16.0.9':
|
||||
resolution: {integrity: sha512-GlUdJwy2leA/HnyRYxJ1ZJLCJH+BxZfqV4E0iYLrJipDKxWejWpPtZUdccPmCfIEY9gNBO7bPfbG6IIgkt0qXg==}
|
||||
'@next/swc-linux-x64-gnu@16.1.1':
|
||||
resolution: {integrity: sha512-20bYDfgOQAPUkkKBnyP9PTuHiJGM7HzNBbuqmD0jiFVZ0aOldz+VnJhbxzjcSabYsnNjMPsE0cyzEudpYxsrUQ==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
|
||||
'@next/swc-linux-x64-musl@16.0.9':
|
||||
resolution: {integrity: sha512-UCtOVx4N8AHF434VPwg4L0KkFLAd7pgJShzlX/hhv9+FDrT7/xCuVdlBsCXH7l9yCA/wHl3OqhMbIkgUluriWA==}
|
||||
'@next/swc-linux-x64-musl@16.1.1':
|
||||
resolution: {integrity: sha512-9pRbK3M4asAHQRkwaXwu601oPZHghuSC8IXNENgbBSyImHv/zY4K5udBusgdHkvJ/Tcr96jJwQYOll0qU8+fPA==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
|
||||
'@next/swc-win32-arm64-msvc@16.0.9':
|
||||
resolution: {integrity: sha512-tQjtDGtv63mV3n/cZ4TH8BgUvKTSFlrF06yT5DyRmgQuj5WEjBUDy0W3myIW5kTRYMPrLn42H3VfCNwBH6YYiA==}
|
||||
'@next/swc-win32-arm64-msvc@16.1.1':
|
||||
resolution: {integrity: sha512-bdfQkggaLgnmYrFkSQfsHfOhk/mCYmjnrbRCGgkMcoOBZ4n+TRRSLmT/CU5SATzlBJ9TpioUyBW/vWFXTqQRiA==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [arm64]
|
||||
os: [win32]
|
||||
|
||||
'@next/swc-win32-x64-msvc@16.0.9':
|
||||
resolution: {integrity: sha512-y9AGACHTBwnWFLq5B5Fiv3FEbXBusdPb60pgoerB04CV/pwjY1xQNdoTNxAv7eUhU2k1CKnkN4XWVuiK07uOqA==}
|
||||
'@next/swc-win32-x64-msvc@16.1.1':
|
||||
resolution: {integrity: sha512-Ncwbw2WJ57Al5OX0k4chM68DKhEPlrXBaSXDCi2kPi5f4d8b3ejr3RRJGfKBLrn2YJL5ezNS7w2TZLHSti8CMw==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [x64]
|
||||
os: [win32]
|
||||
@@ -1955,8 +1955,8 @@ packages:
|
||||
react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc
|
||||
react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc
|
||||
|
||||
next@16.0.9:
|
||||
resolution: {integrity: sha512-Xk5x/wEk6ADIAtQECLo1uyE5OagbQCiZ+gW4XEv24FjQ3O2PdSkvgsn22aaseSXC7xg84oONvQjFbSTX5YsMhQ==}
|
||||
next@16.1.1:
|
||||
resolution: {integrity: sha512-QI+T7xrxt1pF6SQ/JYFz95ro/mg/1Znk5vBebsWwbpejj1T0A23hO7GYEaVac9QUOT2BIMiuzm0L99ooq7k0/w==}
|
||||
engines: {node: '>=20.9.0'}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
@@ -2508,30 +2508,30 @@ snapshots:
|
||||
'@jridgewell/resolve-uri': 3.1.2
|
||||
'@jridgewell/sourcemap-codec': 1.5.5
|
||||
|
||||
'@next/env@16.0.9': {}
|
||||
'@next/env@16.1.1': {}
|
||||
|
||||
'@next/swc-darwin-arm64@16.0.9':
|
||||
'@next/swc-darwin-arm64@16.1.1':
|
||||
optional: true
|
||||
|
||||
'@next/swc-darwin-x64@16.0.9':
|
||||
'@next/swc-darwin-x64@16.1.1':
|
||||
optional: true
|
||||
|
||||
'@next/swc-linux-arm64-gnu@16.0.9':
|
||||
'@next/swc-linux-arm64-gnu@16.1.1':
|
||||
optional: true
|
||||
|
||||
'@next/swc-linux-arm64-musl@16.0.9':
|
||||
'@next/swc-linux-arm64-musl@16.1.1':
|
||||
optional: true
|
||||
|
||||
'@next/swc-linux-x64-gnu@16.0.9':
|
||||
'@next/swc-linux-x64-gnu@16.1.1':
|
||||
optional: true
|
||||
|
||||
'@next/swc-linux-x64-musl@16.0.9':
|
||||
'@next/swc-linux-x64-musl@16.1.1':
|
||||
optional: true
|
||||
|
||||
'@next/swc-win32-arm64-msvc@16.0.9':
|
||||
'@next/swc-win32-arm64-msvc@16.1.1':
|
||||
optional: true
|
||||
|
||||
'@next/swc-win32-x64-msvc@16.0.9':
|
||||
'@next/swc-win32-x64-msvc@16.1.1':
|
||||
optional: true
|
||||
|
||||
'@playwright/test@1.57.0':
|
||||
@@ -2552,12 +2552,12 @@ snapshots:
|
||||
dependencies:
|
||||
cross-spawn: 7.0.6
|
||||
|
||||
'@posthog/nextjs-config@1.6.3(next@16.0.9(@playwright/test@1.57.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))':
|
||||
'@posthog/nextjs-config@1.6.3(next@16.1.1(@playwright/test@1.57.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))':
|
||||
dependencies:
|
||||
'@posthog/cli': 0.5.16
|
||||
'@posthog/core': 1.7.0
|
||||
'@posthog/webpack-plugin': 1.1.3
|
||||
next: 16.0.9(@playwright/test@1.57.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
|
||||
next: 16.1.1(@playwright/test@1.57.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
|
||||
semver: 7.7.3
|
||||
transitivePeerDependencies:
|
||||
- debug
|
||||
@@ -3918,24 +3918,25 @@ snapshots:
|
||||
react: 19.2.1
|
||||
react-dom: 19.2.1(react@19.2.1)
|
||||
|
||||
next@16.0.9(@playwright/test@1.57.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1):
|
||||
next@16.1.1(@playwright/test@1.57.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1):
|
||||
dependencies:
|
||||
'@next/env': 16.0.9
|
||||
'@next/env': 16.1.1
|
||||
'@swc/helpers': 0.5.15
|
||||
baseline-browser-mapping: 2.8.32
|
||||
caniuse-lite: 1.0.30001760
|
||||
postcss: 8.4.31
|
||||
react: 19.2.1
|
||||
react-dom: 19.2.1(react@19.2.1)
|
||||
styled-jsx: 5.1.6(react@19.2.1)
|
||||
optionalDependencies:
|
||||
'@next/swc-darwin-arm64': 16.0.9
|
||||
'@next/swc-darwin-x64': 16.0.9
|
||||
'@next/swc-linux-arm64-gnu': 16.0.9
|
||||
'@next/swc-linux-arm64-musl': 16.0.9
|
||||
'@next/swc-linux-x64-gnu': 16.0.9
|
||||
'@next/swc-linux-x64-musl': 16.0.9
|
||||
'@next/swc-win32-arm64-msvc': 16.0.9
|
||||
'@next/swc-win32-x64-msvc': 16.0.9
|
||||
'@next/swc-darwin-arm64': 16.1.1
|
||||
'@next/swc-darwin-x64': 16.1.1
|
||||
'@next/swc-linux-arm64-gnu': 16.1.1
|
||||
'@next/swc-linux-arm64-musl': 16.1.1
|
||||
'@next/swc-linux-x64-gnu': 16.1.1
|
||||
'@next/swc-linux-x64-musl': 16.1.1
|
||||
'@next/swc-win32-arm64-msvc': 16.1.1
|
||||
'@next/swc-win32-x64-msvc': 16.1.1
|
||||
'@playwright/test': 1.57.0
|
||||
sharp: 0.34.5
|
||||
transitivePeerDependencies:
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import type { Metadata } from "next"
|
||||
import { Suspense } from "react"
|
||||
import { CommunityIconSearch } from "@/components/community-icon-search"
|
||||
import { ExperimentalWarning } from "@/components/experimental-warning"
|
||||
import { BASE_URL } from "@/constants"
|
||||
import { getCommunitySubmissions } from "@/lib/community"
|
||||
|
||||
@@ -43,7 +42,6 @@ export default async function CommunityPage() {
|
||||
const icons = await getCommunitySubmissions()
|
||||
return (
|
||||
<div className="isolate overflow-hidden p-2 mx-auto max-w-7xl">
|
||||
<ExperimentalWarning message="The community icon submission system is currently in an experimentation phase. Submissions shown here will not be reviewed or processed at this time. We're gathering feedback to improve the experience." />
|
||||
<div className="flex flex-col sm:flex-row sm:items-center justify-between gap-4">
|
||||
<div>
|
||||
<h1 className="text-3xl font-bold">Browse community icons</h1>
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
import { AlertCircle, RefreshCw } from "lucide-react"
|
||||
import * as React from "react"
|
||||
import { ExperimentalWarning } from "@/components/experimental-warning"
|
||||
import { SubmissionsDataTable } from "@/components/submissions-data-table"
|
||||
import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert"
|
||||
import { Button } from "@/components/ui/button"
|
||||
@@ -156,7 +155,6 @@ export default function DashboardPage() {
|
||||
return (
|
||||
<>
|
||||
<main className="container mx-auto pt-12 pb-14 px-4 sm:px-6 lg:px-8">
|
||||
<ExperimentalWarning message="The submissions dashboard is currently in an experimentation phase. Submissions will not be reviewed or processed at this time. We're gathering feedback to improve the experience." />
|
||||
<Card className="bg-background/50 border-none shadow-lg">
|
||||
<CardHeader>
|
||||
<CardTitle>Submissions Dashboard</CardTitle>
|
||||
|
||||
@@ -5,7 +5,6 @@ import { Check, FileImage, FileType, Plus, X } from "lucide-react"
|
||||
import { useState } from "react"
|
||||
import { toast } from "sonner"
|
||||
import { revalidateAllSubmissions } from "@/app/actions/submissions"
|
||||
import { ExperimentalWarning } from "@/components/experimental-warning"
|
||||
import { IconNameCombobox } from "@/components/icon-name-combobox"
|
||||
import { IconSubmissionGuidelines } from "@/components/icon-submission-guidelines"
|
||||
import {
|
||||
@@ -328,7 +327,6 @@ export function AdvancedIconSubmissionFormTanStack() {
|
||||
|
||||
return (
|
||||
<div className="max-w-4xl mx-auto">
|
||||
<ExperimentalWarning message="This icon submission form is currently in an experimentation phase. Submissions will not be reviewed or processed at this time. We're gathering feedback to improve the experience." />
|
||||
|
||||
<AlertDialog open={showConfirmDialog} onOpenChange={setShowConfirmDialog}>
|
||||
<AlertDialogContent className="bg-background">
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
import { AlertTriangle } from "lucide-react"
|
||||
import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert"
|
||||
import { Button } from "@/components/ui/button"
|
||||
|
||||
interface ExperimentalWarningProps {
|
||||
message?: string
|
||||
}
|
||||
|
||||
export function ExperimentalWarning({ message }: ExperimentalWarningProps) {
|
||||
const defaultMessage =
|
||||
message ||
|
||||
"This icon submission system is currently in an experimentation phase. Submissions will not be reviewed or processed at this time. We're gathering feedback to improve the experience."
|
||||
|
||||
return (
|
||||
<Alert variant="default" className="mb-6 border-amber-500/50 bg-amber-50 dark:bg-amber-950/20 px-8 py-6">
|
||||
<AlertTriangle className="text-amber-600 dark:text-amber-500 size-8" />
|
||||
<div className="col-start-2 space-y-4">
|
||||
<AlertTitle className="text-amber-900 dark:text-amber-100 text-2xl font-bold">Experimental Feature</AlertTitle>
|
||||
<AlertDescription className="text-amber-800 dark:text-amber-200 text-base leading-relaxed">{defaultMessage}</AlertDescription>
|
||||
<Button className="feedback-button mt-4" variant="outline" size="lg">
|
||||
Send feedback
|
||||
</Button>
|
||||
</div>
|
||||
</Alert>
|
||||
)
|
||||
}
|
||||
@@ -382,27 +382,6 @@ export function IconSearch({ icons }: IconSearchProps) {
|
||||
<div id="icon-submission-content" className="w-full">
|
||||
<IconSubmissionContent />
|
||||
</div>
|
||||
<div className="mt-4 flex flex-col sm:flex-row items-center gap-2 justify-center w-full">
|
||||
<span className="text-sm text-muted-foreground">Can't submit it yourself?</span>
|
||||
<Button
|
||||
className="cursor-pointer w-full sm:w-auto truncate whitespace-nowrap"
|
||||
variant="outline"
|
||||
size="sm"
|
||||
onClick={() => {
|
||||
setIsLazyRequestSubmitted(true)
|
||||
toast("Request received!", {
|
||||
description: `We've noted your request for "${searchQuery || "this icon"}". Thanks for your suggestion.`,
|
||||
})
|
||||
posthog.capture("lazy icon request", {
|
||||
query: searchQuery,
|
||||
categories: selectedCategories,
|
||||
})
|
||||
}}
|
||||
disabled={isLazyRequestSubmitted}
|
||||
>
|
||||
Request this icon
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
) : (
|
||||
|
||||
@@ -106,10 +106,10 @@ export function IconSubmissionContent() {
|
||||
<div className="flex flex-col gap-6">
|
||||
<div className="text-center space-y-2">
|
||||
<p className="text-muted-foreground">
|
||||
Submissions are currently handled via GitHub issues, but we are experimenting with uploading icons directly on the website.
|
||||
If you would like to help us expand our collection, you can submit your icons using our submission form or by creating an issue on Github
|
||||
</p>
|
||||
<Button variant="link" asChild className="text-primary">
|
||||
<Link href="/submit">Try the experimental submission form →</Link>
|
||||
<Link href="/submit">Submit using the submission form →</Link>
|
||||
</Button>
|
||||
</div>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user