wowowowowo
This commit is contained in:
@@ -22,7 +22,16 @@ import UserMenuContent from "@/components/UserMenuContent.vue";
|
||||
import { getInitials } from "@/composables/useInitials";
|
||||
import type { BreadcrumbItem, NavItem } from "@/types";
|
||||
import { Link, usePage } from "@inertiajs/vue3";
|
||||
import { AppWindowIcon, BoltIcon, Menu, Search, ServerIcon } from "lucide-vue-next";
|
||||
import {
|
||||
AppWindowIcon,
|
||||
BoltIcon,
|
||||
BoxesIcon,
|
||||
ClipboardListIcon,
|
||||
Menu,
|
||||
Search,
|
||||
ServerIcon,
|
||||
WorkflowIcon,
|
||||
} from "lucide-vue-next";
|
||||
import { computed } from "vue";
|
||||
|
||||
interface Props {
|
||||
@@ -36,7 +45,7 @@ const props = withDefaults(defineProps<Props>(), {
|
||||
const page = usePage();
|
||||
const auth = computed(() => page.props.auth);
|
||||
|
||||
const isCurrentRoute = computed(() => (url: string) => page.url === url);
|
||||
const isCurrentRoute = computed(() => (url: string) => page.url === url || page.url.startsWith(`${url}/`));
|
||||
|
||||
const activeItemStyles = computed(
|
||||
() => (url: string) =>
|
||||
@@ -54,20 +63,31 @@ const mainNavItems: NavItem[] = [
|
||||
];
|
||||
|
||||
if (page.props.organisation) {
|
||||
const organisationId = page.props?.organisation?.id;
|
||||
|
||||
mainNavItems.push({
|
||||
title: page.props.organisation.name,
|
||||
href: new URL(
|
||||
route("organisations.show", {
|
||||
organisation: page.props?.organisation?.id,
|
||||
organisation: organisationId,
|
||||
}),
|
||||
).pathname,
|
||||
icon: BoltIcon,
|
||||
});
|
||||
mainNavItems.push({
|
||||
title: "Environments",
|
||||
href: new URL(
|
||||
route("environments.index", {
|
||||
organisation: organisationId,
|
||||
}),
|
||||
).pathname,
|
||||
icon: BoxesIcon,
|
||||
});
|
||||
mainNavItems.push({
|
||||
title: "Applications",
|
||||
href: new URL(
|
||||
route("applications.index", {
|
||||
organisation: page.props?.organisation?.id,
|
||||
organisation: organisationId,
|
||||
}),
|
||||
).pathname,
|
||||
icon: AppWindowIcon,
|
||||
@@ -76,11 +96,38 @@ if (page.props.organisation) {
|
||||
title: "Servers",
|
||||
href: new URL(
|
||||
route("servers.index", {
|
||||
organisation: page.props?.organisation?.id,
|
||||
organisation: organisationId,
|
||||
}),
|
||||
).pathname,
|
||||
icon: ServerIcon,
|
||||
});
|
||||
mainNavItems.push({
|
||||
title: "Operations",
|
||||
href: new URL(
|
||||
route("operations.index", {
|
||||
organisation: organisationId,
|
||||
}),
|
||||
).pathname,
|
||||
icon: WorkflowIcon,
|
||||
});
|
||||
|
||||
if (
|
||||
page.props.organisation.providers_count === 0 ||
|
||||
page.props.organisation.source_providers_count === 0 ||
|
||||
page.props.organisation.registries_count === 0 ||
|
||||
page.props.organisation.servers_count === 0 ||
|
||||
page.props.organisation.applications_count === 0
|
||||
) {
|
||||
mainNavItems.push({
|
||||
title: "Onboarding",
|
||||
href: new URL(
|
||||
route("onboarding.show", {
|
||||
organisation: organisationId,
|
||||
}),
|
||||
).pathname,
|
||||
icon: ClipboardListIcon,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
const rightNavItems: NavItem[] = [
|
||||
|
||||
Reference in New Issue
Block a user