FPSMS-frontend
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
 
 

79 Zeilen
2.3 KiB

  1. "use client";
  2. import Breadcrumbs from "@mui/material/Breadcrumbs";
  3. import Typography from "@mui/material/Typography";
  4. import Link from "next/link";
  5. import MUILink from "@mui/material/Link";
  6. import { usePathname } from "next/navigation";
  7. import { useTranslation } from "react-i18next";
  8. const pathToLabelMap: { [path: string]: string } = {
  9. "": "Overview",
  10. "/projects": "Projects",
  11. "/projects/create": "Create Project",
  12. "/tasks": "Task Template",
  13. "/tasks/create": "Create Task Template",
  14. "/settings/qcItem": "Qc Item",
  15. "/settings/qcItemAll": "QC Item All",
  16. "/settings/qrCodeHandle": "QR Code Handle",
  17. "/settings/rss": "Demand Forecast Setting",
  18. "/settings/equipment": "Equipment",
  19. "/settings/equipment/MaintenanceEdit": "MaintenanceEdit",
  20. "/settings/shop": "ShopAndTruck",
  21. "/settings/shop/detail": "Shop Detail",
  22. "/settings/shop/truckdetail": "Truck Lane Detail",
  23. "/settings/printer": "Printer",
  24. "/scheduling/rough": "Demand Forecast",
  25. "/scheduling/rough/edit": "FG & Material Demand Forecast Detail",
  26. "/scheduling/detailed": "Detail Scheduling",
  27. "/scheduling/detailed/edit": "FG Production Schedule",
  28. "/inventory": "Inventory",
  29. "/settings/importTesting": "Import Testing",
  30. "/do": "Delivery Order",
  31. "/pickOrder": "Pick Order",
  32. "/po": "Purchase Order",
  33. "/dashboard": "dashboard",
  34. "/jo": "Job Order",
  35. "/jo/edit": "Edit Job Order",
  36. "/putAway": "Put Away",
  37. "/stockIssue": "Stock Issue",
  38. "/report": "Report",
  39. };
  40. const Breadcrumb = () => {
  41. const pathname = usePathname();
  42. const segments = pathname.split("/");
  43. const { t } = useTranslation("common");
  44. return (
  45. <Breadcrumbs>
  46. {segments.map((segment, index) => {
  47. const href = segments.slice(0, index + 1).join("/");
  48. const label = pathToLabelMap[href] || segment;
  49. if (index === segments.length - 1) {
  50. return (
  51. <Typography key={index} color="text.primary">
  52. {t(label)}
  53. </Typography>
  54. );
  55. } else {
  56. return (
  57. <MUILink
  58. underline="hover"
  59. color="inherit"
  60. key={index}
  61. component={Link}
  62. href={href || "/"}
  63. >
  64. {t(label)}
  65. </MUILink>
  66. );
  67. }
  68. })}
  69. </Breadcrumbs>
  70. );
  71. };
  72. export default Breadcrumb;