fix(27): lint fixes — unused param, import order, formatting
This commit is contained in:
@@ -59,9 +59,7 @@ test.describe("Dashboard", () => {
|
|||||||
|
|
||||||
// The old "collection card with item count of 6" test referenced a dashboard card
|
// The old "collection card with item count of 6" test referenced a dashboard card
|
||||||
// that no longer exists post-Phase-27. Mark as fixme until discovery feed is seeded.
|
// that no longer exists post-Phase-27. Mark as fixme until discovery feed is seeded.
|
||||||
test.fixme(
|
test.fixme("shows collection card with item count of 6", async ({ page }) => {
|
||||||
"shows collection card with item count of 6",
|
|
||||||
async ({ page }) => {
|
|
||||||
// NOTE: The old Collection dashboard card is removed. The landing page now
|
// NOTE: The old Collection dashboard card is removed. The landing page now
|
||||||
// shows discovery sections (Popular Setups, Recently Added, etc.).
|
// shows discovery sections (Popular Setups, Recently Added, etc.).
|
||||||
// This test needs to be replaced with a discovery-feed-aware assertion.
|
// This test needs to be replaced with a discovery-feed-aware assertion.
|
||||||
@@ -70,8 +68,7 @@ test.describe("Dashboard", () => {
|
|||||||
.first();
|
.first();
|
||||||
await expect(collectionCard).toBeVisible();
|
await expect(collectionCard).toBeVisible();
|
||||||
await expect(collectionCard.getByText("6")).toBeVisible();
|
await expect(collectionCard.getByText("6")).toBeVisible();
|
||||||
},
|
});
|
||||||
);
|
|
||||||
|
|
||||||
// Planning card removed from dashboard — threads are accessed via Collection > Planning tab
|
// Planning card removed from dashboard — threads are accessed via Collection > Planning tab
|
||||||
test.fixme("shows active thread count on Planning card", async ({ page }) => {
|
test.fixme("shows active thread count on Planning card", async ({ page }) => {
|
||||||
|
|||||||
@@ -10,18 +10,15 @@ interface TabItemProps {
|
|||||||
isActive: boolean;
|
isActive: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
function TabItemWrapper({
|
function TabItemWrapper({ icon, label, isActive }: TabItemProps) {
|
||||||
icon,
|
|
||||||
label,
|
|
||||||
isActive,
|
|
||||||
children,
|
|
||||||
}: TabItemProps & { children?: React.ReactNode }) {
|
|
||||||
const activeClass = "text-gray-900";
|
const activeClass = "text-gray-900";
|
||||||
const inactiveClass = "text-gray-400";
|
const inactiveClass = "text-gray-400";
|
||||||
const colorClass = isActive ? activeClass : inactiveClass;
|
const colorClass = isActive ? activeClass : inactiveClass;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<span className={`flex flex-col items-center gap-0.5 py-2 px-4 ${colorClass}`}>
|
<span
|
||||||
|
className={`flex flex-col items-center gap-0.5 py-2 px-4 ${colorClass}`}
|
||||||
|
>
|
||||||
<LucideIcon name={icon} size={20} />
|
<LucideIcon name={icon} size={20} />
|
||||||
<span className="text-xs">{label}</span>
|
<span className="text-xs">{label}</span>
|
||||||
</span>
|
</span>
|
||||||
@@ -83,10 +80,7 @@ export function BottomTabBar() {
|
|||||||
)}
|
)}
|
||||||
|
|
||||||
{/* Search tab — always a button, opens CatalogSearchOverlay */}
|
{/* Search tab — always a button, opens CatalogSearchOverlay */}
|
||||||
<button
|
<button type="button" onClick={() => openCatalogSearch("collection")}>
|
||||||
type="button"
|
|
||||||
onClick={() => openCatalogSearch("collection")}
|
|
||||||
>
|
|
||||||
<TabItemWrapper icon="search" label="Search" isActive={false} />
|
<TabItemWrapper icon="search" label="Search" isActive={false} />
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -13,10 +13,10 @@ import "../app.css";
|
|||||||
import { AddToCollectionModal } from "../components/AddToCollectionModal";
|
import { AddToCollectionModal } from "../components/AddToCollectionModal";
|
||||||
import { AddToThreadModal } from "../components/AddToThreadModal";
|
import { AddToThreadModal } from "../components/AddToThreadModal";
|
||||||
import { AuthPromptModal } from "../components/AuthPromptModal";
|
import { AuthPromptModal } from "../components/AuthPromptModal";
|
||||||
|
import { BottomTabBar } from "../components/BottomTabBar";
|
||||||
import { CatalogSearchOverlay } from "../components/CatalogSearchOverlay";
|
import { CatalogSearchOverlay } from "../components/CatalogSearchOverlay";
|
||||||
import { ConfirmDialog } from "../components/ConfirmDialog";
|
import { ConfirmDialog } from "../components/ConfirmDialog";
|
||||||
import { ExternalLinkDialog } from "../components/ExternalLinkDialog";
|
import { ExternalLinkDialog } from "../components/ExternalLinkDialog";
|
||||||
import { BottomTabBar } from "../components/BottomTabBar";
|
|
||||||
import { FabMenu } from "../components/FabMenu";
|
import { FabMenu } from "../components/FabMenu";
|
||||||
import { OnboardingWizard } from "../components/OnboardingWizard";
|
import { OnboardingWizard } from "../components/OnboardingWizard";
|
||||||
import { TopNav } from "../components/TopNav";
|
import { TopNav } from "../components/TopNav";
|
||||||
|
|||||||
@@ -66,11 +66,7 @@ function CollectionPage() {
|
|||||||
exit="exit"
|
exit="exit"
|
||||||
transition={{ duration: 0.12, ease: "easeInOut" }}
|
transition={{ duration: 0.12, ease: "easeInOut" }}
|
||||||
>
|
>
|
||||||
{tab === "gear" ? (
|
{tab === "gear" ? <CollectionView /> : <PlanningView />}
|
||||||
<CollectionView />
|
|
||||||
) : (
|
|
||||||
<PlanningView />
|
|
||||||
)}
|
|
||||||
</motion.div>
|
</motion.div>
|
||||||
</AnimatePresence>
|
</AnimatePresence>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user