Files
Stackq/.svelte-kit/adapter-node/entries/pages/receipts/_page.svelte.js
T

110 lines
4.9 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { h as head, e as escape_html, a as ensure_array_like, b as attr, c as stringify } from "../../../chunks/index2.js";
import { B as Button } from "../../../chunks/button.js";
import { C as Card, a as Card_content } from "../../../chunks/card-content.js";
import "clsx";
import { I as Input } from "../../../chunks/input.js";
function _page($$renderer, $$props) {
$$renderer.component(($$renderer2) => {
let { data } = $$props;
let searchQuery = "";
const receipts = data?.receipts ?? [];
const filteredReceipts = (() => {
const q = searchQuery.trim().toLowerCase();
if (!q) return receipts;
return receipts.filter((r) => r.id.toLowerCase().includes(q));
})();
let $$settled = true;
let $$inner_renderer;
function $$render_inner($$renderer3) {
head("16kr07e", $$renderer3, ($$renderer4) => {
$$renderer4.title(($$renderer5) => {
$$renderer5.push(`<title>Receipts Stackq</title>`);
});
});
$$renderer3.push(`<main class="container mx-auto flex flex-col gap-6 px-4 py-6 sm:px-6 sm:py-8"><div class="flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between"><div class="flex items-center gap-3 min-w-0"><a href="/" class="text-muted-foreground hover:text-foreground shrink-0 text-sm" title="Back to main">Back</a> <h1 class="text-xl font-semibold truncate sm:text-2xl">Receipts</h1></div> <div class="flex flex-col gap-3 sm:flex-row sm:flex-wrap sm:items-center sm:gap-2"><div class="w-full sm:w-64 sm:min-w-0">`);
Input($$renderer3, {
type: "search",
placeholder: "Search receipts…",
class: "h-11 w-full sm:h-9",
get value() {
return searchQuery;
},
set value($$value) {
searchQuery = $$value;
$$settled = false;
}
});
$$renderer3.push(`<!----></div> <span class="text-muted-foreground text-sm shrink-0">${escape_html(filteredReceipts.length)}${escape_html(filteredReceipts.length !== receipts.length ? ` of ${receipts.length}` : "")} receipts</span> <a href="/receipts/new" class="block shrink-0">`);
Button($$renderer3, {
class: "w-full sm:w-auto min-h-11",
children: ($$renderer4) => {
$$renderer4.push(`<!---->New receipt`);
},
$$slots: { default: true }
});
$$renderer3.push(`<!----></a></div></div> `);
if (filteredReceipts.length === 0) {
$$renderer3.push("<!--[-->");
Card($$renderer3, {
children: ($$renderer4) => {
Card_content($$renderer4, {
class: "flex flex-col items-center justify-center gap-4 py-12",
children: ($$renderer5) => {
$$renderer5.push(`<p class="text-muted-foreground text-center text-sm">${escape_html(receipts.length === 0 ? "No receipts yet." : "No receipts match your search.")}</p> <p class="text-muted-foreground text-center text-xs">${escape_html(receipts.length === 0 ? "Create a receipt to get started." : "Try a different search.")}</p> <a href="/receipts/new">`);
Button($$renderer5, {
variant: "outline",
children: ($$renderer6) => {
$$renderer6.push(`<!---->New receipt`);
},
$$slots: { default: true }
});
$$renderer5.push(`<!----></a> <a href="/">`);
Button($$renderer5, {
variant: "ghost",
children: ($$renderer6) => {
$$renderer6.push(`<!---->Back to home`);
},
$$slots: { default: true }
});
$$renderer5.push(`<!----></a>`);
},
$$slots: { default: true }
});
},
$$slots: { default: true }
});
} else {
$$renderer3.push("<!--[!-->");
$$renderer3.push(`<div class="flex flex-col gap-2"><!--[-->`);
const each_array = ensure_array_like(filteredReceipts);
for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
let receipt = each_array[$$index];
Card($$renderer3, {
children: ($$renderer4) => {
Card_content($$renderer4, {
class: "p-4",
children: ($$renderer5) => {
$$renderer5.push(`<a${attr("href", `/receipts/${stringify(receipt.id)}`)} class="font-medium hover:underline">Receipt ${escape_html(receipt.id)}</a>`);
},
$$slots: { default: true }
});
},
$$slots: { default: true }
});
}
$$renderer3.push(`<!--]--></div>`);
}
$$renderer3.push(`<!--]--></main>`);
}
do {
$$settled = true;
$$inner_renderer = $$renderer2.copy();
$$render_inner($$inner_renderer);
} while (!$$settled);
$$renderer2.subsume($$inner_renderer);
});
}
export {
_page as default
};