Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion web/src/hooks/routes/use-automation-page.ts
Original file line number Diff line number Diff line change
Expand Up @@ -528,7 +528,6 @@ function useAutomationTriggersPage() {
onToggleEnabled: (enabled: boolean) => {
void handleToggleEnabled(enabled);
},
onTriggerNow: () => undefined,
runs: triggerRunsQuery.data ?? [],
runsError: triggerRunsQuery.error,
runsLoading: triggerRunsQuery.isLoading,
Expand Down
19 changes: 0 additions & 19 deletions web/src/hooks/use-mobile.ts

This file was deleted.

22 changes: 10 additions & 12 deletions web/src/routes/_app/settings/-index.test.tsx
Original file line number Diff line number Diff line change
@@ -1,25 +1,23 @@
import { render, screen } from "@testing-library/react";
import type { ReactNode } from "react";
import { describe, expect, it, vi } from "vitest";

const redirectMock = vi.fn((payload: { to: string }) => payload);

vi.mock("@tanstack/react-router", () => ({
createFileRoute: () => (opts: { component: () => ReactNode }) => ({
createFileRoute: () => (opts: { beforeLoad?: () => void; component: () => unknown }) => ({
beforeLoad: opts.beforeLoad,
component: opts.component,
}),
redirect: (payload: { to: string }) => redirectMock(payload),
}));

import { Route } from "./index";

// eslint-disable-next-line @typescript-eslint/no-explicit-any
const SettingsIndexPage = (Route as any).component as () => ReactNode;

describe("SettingsIndexPage", () => {
it("renders the placeholder empty state for the default settings route", () => {
render(<SettingsIndexPage />);
const beforeLoad = (Route as any).beforeLoad as () => void;

expect(screen.getByTestId("settings-index-placeholder")).toBeInTheDocument();
expect(screen.getByTestId("settings-index-empty")).toBeInTheDocument();
expect(screen.getByText("Select a settings section")).toBeInTheDocument();
expect(screen.getByText("Choose a section from the left to configure AGH")).toBeInTheDocument();
describe("SettingsIndexRedirect", () => {
it("redirects the default settings route to the general section", () => {
expect(() => beforeLoad()).toThrow();
expect(redirectMock).toHaveBeenCalledWith({ to: "/settings/general" });
});
});
27 changes: 8 additions & 19 deletions web/src/routes/_app/settings/index.tsx
Original file line number Diff line number Diff line change
@@ -1,25 +1,14 @@
import { Settings } from "lucide-react";
import { createFileRoute } from "@tanstack/react-router";
import { createFileRoute, redirect } from "@tanstack/react-router";

import { Empty } from "@agh/ui";
import { SETTINGS_SECTIONS, settingsSectionPath } from "@/systems/settings";

export const Route = createFileRoute("/_app/settings/")({
component: SettingsIndexPage,
beforeLoad: () => {
throw redirect({ to: settingsSectionPath(SETTINGS_SECTIONS[0].slug) });
},
component: SettingsIndexRedirect,
});

function SettingsIndexPage() {
return (
<div
className="flex flex-1 items-center justify-center p-8"
data-testid="settings-index-placeholder"
>
<Empty
icon={Settings}
title="Select a settings section"
description="Choose a section from the left to configure AGH"
data-testid="settings-index-empty"
className="max-w-md"
/>
</div>
);
function SettingsIndexRedirect() {
return null;
}
6 changes: 3 additions & 3 deletions web/src/routes/_app/settings/stories/-index.stories.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,18 +10,18 @@ import {
const meta: Meta<typeof StorybookRouteCanvas> = {
...createRouteStoryMeta(
"routes/app/settings/index",
"Default settings landing route rendered through the real app shell and settings navigation."
"Settings root route redirecting to the default General section inside the real app shell."
),
};

export default meta;
type Story = StoryObj<typeof meta>;

/**
* Settings landing page with the left navigation and placeholder content.
* Settings root route resolving to the default General section.
*/
export const Default: Story = {
args: {},
parameters: appRouteParameters("/settings"),
parameters: appRouteParameters("/settings/general"),
render: () => <StorybookWorkspaceSetup />,
};
120 changes: 0 additions & 120 deletions web/src/systems/agent/components/agent-sidebar-group.test.tsx

This file was deleted.

100 changes: 0 additions & 100 deletions web/src/systems/agent/components/agent-sidebar-group.tsx

This file was deleted.

Loading
Loading