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