diff --git a/packages/backend/src/mikro-orm.config.ts b/packages/backend/src/mikro-orm.config.ts index fb6c0ec..a5a65e7 100644 --- a/packages/backend/src/mikro-orm.config.ts +++ b/packages/backend/src/mikro-orm.config.ts @@ -20,7 +20,19 @@ export default defineConfig({ metadataProvider: TsMorphMetadataProvider, debug: process.env.NODE_ENV !== "production", logger: (message) => { - logger.log(message); + const smartMsg = message.replace("[MikroORM] ", ""); + + switch (true) { + case smartMsg.startsWith("[info]"): + logger.info(message.replace("[info] ", "")); + break; + case smartMsg.startsWith("[discovery]"): + logger.info(message); + break; + default: + logger.log(message); + break; + } }, dbName: config.database.database, diff --git a/packages/frontend/src/Layout.vue b/packages/frontend/src/Layout.vue index b6148d9..a886fb8 100755 --- a/packages/frontend/src/Layout.vue +++ b/packages/frontend/src/Layout.vue @@ -14,6 +14,7 @@ :class='$route.path === "/" ? "isActive" : ""' + title="ホーム" > -
- +
+
@@ -151,10 +156,16 @@ main.layout { .route-main { display: flex; + flex-direction: column; padding: 1.25rem; padding-bottom: 0; overflow: scroll; - min-height: 100%; + height: 100%; +} + +.content-main .route-main.full-route { + padding: 0; + overflow: hidden; } .router-progress { @@ -190,14 +201,24 @@ import routerStatus, { title } from "@/lib/router"; import { Icon } from "@iconify/vue"; import Progress from "@/components/Progress.vue"; import { communitys, serverInfo } from "@/lib/account"; -import { onBeforeUnmount, onMounted, watch } from "vue"; +import { computed, onBeforeUnmount, onMounted, watch } from "vue"; import { createModal } from "@/lib/modal"; import ErrorModal from "@/components/Modal/Error.vue"; const router = useRouter(); const route = useRoute(); -watch(route, () => { +const isFullRoute = computed(() => route.meta.isFullRoute === true); + +watch(route, (to, from) => { + if ( + to.matched[0]?.path === from.matched[0]?.path && + from.meta.canReloadTitle === false + ) { + routerStatus.isLoad = false; + return false; + } + if (typeof route.meta.title === "string") title.value = route.meta.title; }); diff --git a/packages/frontend/src/lib/account.ts b/packages/frontend/src/lib/account.ts index 7e9d3f8..a04dc51 100644 --- a/packages/frontend/src/lib/account.ts +++ b/packages/frontend/src/lib/account.ts @@ -6,6 +6,7 @@ await initClient(); export let serverInfo = ref(await client.value.request("server-info")); export let account = ref(await client.value.request("me")); +export let presentCommunity = ref["communitys"][number]>(); let communitys = ref["communitys"]>([]); let lastLoadedCommunity = ref(); diff --git a/packages/frontend/src/main.ts b/packages/frontend/src/main.ts index 7a2e535..a9ea957 100755 --- a/packages/frontend/src/main.ts +++ b/packages/frontend/src/main.ts @@ -47,11 +47,23 @@ const router = createRouter({ component: () => import("@/routes/signin.vue"), }, { - path: "/community/:id", + path: "/community/:communityId", meta: { title: "コミュニティ", + isFullRoute: true, + canReloadTitle: false, }, component: () => import("@/routes/community/index.vue"), + children: [ + { + path: "", + component: () => import("@/routes/community/index.inner.vue"), + }, + { + path: ":channelId", + component: () => import("@/routes/community/channel.vue"), + }, + ], }, { path: "/:NotFound(.*)*", @@ -75,6 +87,14 @@ router.afterEach((to, from) => { return false; } + if ( + to.matched[0]?.path === from.matched[0]?.path && + from.meta.canReloadTitle === false + ) { + routerStatus.isLoad = false; + return false; + } + const title = to.meta.title; let serverName = "LynqChat"; diff --git a/packages/frontend/src/routes/community/channel.vue b/packages/frontend/src/routes/community/channel.vue new file mode 100644 index 0000000..f909a3c --- /dev/null +++ b/packages/frontend/src/routes/community/channel.vue @@ -0,0 +1,113 @@ + + + + + \ No newline at end of file diff --git a/packages/frontend/src/routes/community/index.inner.vue b/packages/frontend/src/routes/community/index.inner.vue new file mode 100644 index 0000000..ba53413 --- /dev/null +++ b/packages/frontend/src/routes/community/index.inner.vue @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/packages/frontend/src/routes/community/index.vue b/packages/frontend/src/routes/community/index.vue index d64750f..c39ae0d 100644 --- a/packages/frontend/src/routes/community/index.vue +++ b/packages/frontend/src/routes/community/index.vue @@ -1,32 +1,128 @@ \ No newline at end of file