< Summary

Information
Class: locations.index.tsx
Assembly: app.routes
File(s): /home/runner/work/ClutterStock/ClutterStock/frontend/app/routes/locations.index.tsx
Tag: 58_25416222083
Line coverage
0%
Covered lines: 0
Uncovered lines: 13
Coverable lines: 13
Total lines: 26
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 4
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

File(s)

/home/runner/work/ClutterStock/ClutterStock/frontend/app/routes/locations.index.tsx

#LineLine coverage
 1import { redirect } from "react-router";
 2import type { Route } from "./+types/locations.index";
 3import { routes } from "~/constants/routes";
 4import { deleteLocation, getLocations } from "~/api/client";
 5import { LocationsList } from "~/features/locations";
 6
 07export function loader({ request }: Route.LoaderArgs) {
 08  return getLocations(request);
 9}
 10
 011export async function action({ request }: Route.ActionArgs) {
 012  const formData = await request.formData();
 013  if (formData.get("_action") !== "delete") return null;
 014  const id = Number(formData.get("id"));
 015  if (Number.isNaN(id)) return null;
 016  await deleteLocation(id, request);
 017  return redirect(routes.locations.list());
 18}
 19
 020export function meta(_args: Route.MetaArgs) {
 021  return [{ title: "Locations | ClutterStock" }];
 22}
 23
 024export default function LocationsIndex({ loaderData }: Route.ComponentProps) {
 025  return <LocationsList locations={loaderData} />;
 26}