From e7284241c97ac62f5ae396259e3a5178b2a8b632 Mon Sep 17 00:00:00 2001 From: Bjorn Lammers Date: Sat, 26 Apr 2025 22:56:39 +0200 Subject: [PATCH] feat(web): Fix and improve mobile display of submission form (#1291) * feat(web): Fix and improve mobile display of submission form * fix(web): Run Biome checks and apply fixes * Update web/src/components/icon-search.tsx Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Bjorn Lammers --------- Signed-off-by: Bjorn Lammers Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- web/src/components/header.tsx | 15 ++++++++++- web/src/components/icon-search.tsx | 12 +++++---- web/src/components/icon-submission-form.tsx | 28 ++++++++++++--------- 3 files changed, 37 insertions(+), 18 deletions(-) diff --git a/web/src/components/header.tsx b/web/src/components/header.tsx index 0259708a..2fee310d 100644 --- a/web/src/components/header.tsx +++ b/web/src/components/header.tsx @@ -5,7 +5,7 @@ import { ThemeSwitcher } from "@/components/theme-switcher" import { REPO_PATH } from "@/constants" import { getIconsArray } from "@/lib/api" import type { IconWithName } from "@/types/icons" -import { Github, Search } from "lucide-react" +import { Github, PlusCircle, Search } from "lucide-react" import Link from "next/link" import { useEffect, useState } from "react" import { CommandMenu } from "./command-menu" @@ -74,7 +74,20 @@ export function Header() { + {/* Mobile Submit Button -> triggers IconSubmissionForm dialog */} +
+ + + Submit icon(s) + + } + /> +
+
+ {/* Desktop Submit Button */} diff --git a/web/src/components/icon-search.tsx b/web/src/components/icon-search.tsx index df6610c5..fd5fd3f7 100644 --- a/web/src/components/icon-search.tsx +++ b/web/src/components/icon-search.tsx @@ -397,17 +397,19 @@ export function IconSearch({ icons }: IconSearchProps) {
{filteredIcons.length === 0 ? ( -
-
+
+

Icon not found

Help us expand our collection

- -
+
+ +
+
Can't submit it yourself? @@ -66,22 +66,26 @@ export function IconSubmissionContent({ onClose }: { onClose?: () => void }) {
) } -export function IconSubmissionForm() { +export function IconSubmissionForm({ trigger }: { trigger?: React.ReactNode }) { const [open, setOpen] = useState(false) return ( - - - - + {trigger ? ( + {trigger} + ) : ( + + + + )} + Submit an icon Select an option below to submit or update an icon. -
+
setOpen(false)} />