feat : update
CI / Verify (push) Successful in 1m45s
CI / Build immutable images and deploy (push) Successful in 2m26s

This commit is contained in:
2026-10-07 19:01:45 +07:00 Unverified
parent 26660aaa49
commit 6d0feb11ca
25 changed files with 87 additions and 32 deletions
+1 -1
View File
@@ -148,7 +148,7 @@ export function ArtifactImageExport({
return (
<Dialog>
<DialogTrigger render={<Button type="button" variant="outline" size="sm" className="max-sm:min-h-11" />}>
<DialogTrigger render={<Button type="button" variant="outline" size="sm" />}>
<DownloadIcon data-icon="inline-start" />
บันทึกภาพ
</DialogTrigger>
+2 -2
View File
@@ -229,7 +229,7 @@ export function GuideImageExport({
type="button"
variant="outline"
size="sm"
className={mobileIconOnly ? "max-sm:size-11 max-sm:px-0 max-sm:has-data-[icon=inline-start]:pl-0" : "max-sm:min-h-11"}
className={mobileIconOnly ? "max-sm:size-11 max-sm:px-0 max-sm:has-data-[icon=inline-start]:pl-0" : undefined}
disabled={capturing || disabled}
onClick={() => {
if (modeSelection === "direct") setCaptureMode("with-notes");
@@ -299,7 +299,7 @@ export function GuideImageExport({
);
const exportAction = (
<Button type="button" className="max-sm:min-h-11" disabled={capturing || disabled} onClick={requestCapture}>
<Button type="button" disabled={capturing || disabled} onClick={requestCapture}>
{capturing ? <Spinner data-icon="inline-start" /> : <DownloadIcon data-icon="inline-start" />}
{capturing ? "กำลังบันทึก…" : buttonLabel}
</Button>
+1 -1
View File
@@ -36,7 +36,7 @@ export function PublicNavigation() {
</nav>
<div className="lg:hidden">
<Drawer>
<DrawerTrigger render={<Button type="button" variant="outline" size="sm" className="min-h-11" aria-label="เปิดเมนูหลัก" />}>
<DrawerTrigger render={<Button type="button" variant="outline" size="sm" aria-label="เปิดเมนูหลัก" />}>
<MenuIcon data-icon="inline-start" aria-hidden="true" />เมนู
</DrawerTrigger>
<DrawerContent>
+4 -4
View File
@@ -170,7 +170,7 @@ export function StructuredDirectory({ guides }: { guides: GuideCard[] }) {
<div className="flex flex-col gap-8">
<div className="flex flex-col gap-2">
<div className="flex items-center gap-2">
<InputGroup className="min-h-11 sm:min-h-9 min-w-0 flex-1 sm:w-48 sm:flex-none">
<InputGroup className="min-h-11 sm:min-h-9 min-w-0 flex-1 sm:w-96 sm:flex-none">
<InputGroupAddon>
<SearchIcon />
</InputGroupAddon>
@@ -192,15 +192,15 @@ export function StructuredDirectory({ guides }: { guides: GuideCard[] }) {
</div>
<div className="sm:hidden">
<Drawer>
<DrawerTrigger render={<Button variant="outline" className="min-h-11 w-full" />}>
<DrawerTrigger render={<Button variant="outline" className="w-full" />}>
<SlidersHorizontalIcon data-icon="inline-start" />ตัวกรอง{activeFilters.length ? ` (${activeFilters.length})` : ""}
</DrawerTrigger>
<DrawerContent>
<DrawerHeader><DrawerTitle>ตัวกรองไกด์</DrawerTitle><DrawerDescription>เลือกธาตุ อาวุธ หรือจำนวนดาว</DrawerDescription></DrawerHeader>
<div className="flex max-h-[60svh] flex-col gap-5 overflow-y-auto px-4 pb-4">{filterControls(true)}</div>
<div className="flex gap-2 border-t p-4">
<Button variant="outline" className="min-h-11" disabled={!activeFilters.length} onClick={() => clearParams()}>ล้างตัวกรอง</Button>
<DrawerClose render={<Button className="min-h-11 flex-1" />}>ดู {filtered.length} ไกด์</DrawerClose>
<Button variant="outline" disabled={!activeFilters.length} onClick={() => clearParams()}>ล้างตัวกรอง</Button>
<DrawerClose render={<Button className="flex-1" />}>ดู {filtered.length} ไกด์</DrawerClose>
</div>
</DrawerContent>
</Drawer>
-1
View File
@@ -779,7 +779,6 @@ function ArtifactSectionContent({
const TierGroup = exporting ? Card : Fragment;
const tierCards = guide.artifactGroups.map((condition, conditionIndex) => (
<div key={condition.id} data-tier-condition={conditionIndex} className="artifact-export-tierlist flex flex-col gap-5">
{!exporting && <ComparisonContext />}
{exporting && guide.artifactGroups.length > 1 ? <p className="text-sm font-medium">{condition.name || <ExportText th={`เงื่อนไข ${conditionIndex + 1}`} en={`Condition ${conditionIndex + 1}`} />}</p> : null}
<TierList>
{condition.tiers.map((group, groupIndex) => <TierGroup key={group.id}>
+1 -1
View File
@@ -549,7 +549,7 @@ export function TeamSearch({ groups }: { groups: PublicGuide["teamGroups"] }) {
<CardContent className="py-8 text-center text-sm text-muted-foreground">
<div className="flex flex-col items-center gap-3">
<p>{query.trim() ? "ไม่พบทีมที่ตรงกับคำค้นหาในเงื่อนไขนี้" : "ยังไม่มีทีมในเงื่อนไขนี้"}</p>
{query && <Button className="min-h-11" variant="outline" onClick={() => setQuery("")}>ล้างการค้นหา</Button>}
{query && <Button variant="outline" onClick={() => setQuery("")}>ล้างการค้นหา</Button>}
</div>
</CardContent>
</Card>
+1 -1
View File
@@ -177,7 +177,7 @@ export function WeaponImageExport({
return (
<Dialog>
<DialogTrigger render={<Button type="button" variant="outline" size="sm" className="max-sm:min-h-11" />}>
<DialogTrigger render={<Button type="button" variant="outline" size="sm" />}>
<DownloadIcon data-icon="inline-start" />
บันทึกภาพ
</DialogTrigger>