From c3d6d7f2f1463a72895998b12d9f171cd7106955 Mon Sep 17 00:00:00 2001 From: "github-actions[bot] (aider)" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 2 Mar 2025 18:58:20 +0000 Subject: [PATCH 1/3] feat: Integrate search functionality in subscriptions list component --- src/app/(dashboard)/subscriptions.tsx | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/src/app/(dashboard)/subscriptions.tsx b/src/app/(dashboard)/subscriptions.tsx index 425d8ab..121c3f5 100644 --- a/src/app/(dashboard)/subscriptions.tsx +++ b/src/app/(dashboard)/subscriptions.tsx @@ -1,6 +1,6 @@ "use client"; -import { useState } from "react"; +import { useState, useEffect } from "react"; import { Plus, ShoppingBasket, @@ -54,6 +54,7 @@ interface FilterState { export function SubscriptionsSection() { const { data: subscriptions, isLoading } = api.subscription.getAll.useQuery(); + const [searchQuery, setSearchQuery] = useState(""); const [isDialogOpen, setIsDialogOpen] = useState(false); const [editingSubscription, setEditingSubscription] = useState< InputType["subscription"]["update"] | undefined @@ -209,7 +210,18 @@ export function SubscriptionsSection() { return Array.from(methods); }; - return ( + const handleSearchChange = (event: React.ChangeEvent) => { + setSearchQuery(event.target.value); + }; + + const getFilteredSubscriptions = ( + subscriptions: SubscriptionWithLatestPeriod[], + ) => { + if (!subscriptions) return []; + return subscriptions.filter((sub) => + sub.name.toLowerCase().includes(searchQuery.toLowerCase()), + ); + };
@@ -219,6 +231,13 @@ export function SubscriptionsSection() {
+