diff --git a/common/lib/panic.ts b/common/lib/panic.ts
index 0a7ae204..63afe954 100644
--- a/common/lib/panic.ts
+++ b/common/lib/panic.ts
@@ -1,6 +1,8 @@
// unexpected error
export function panic(reason: string): never {
- throw new Error(reason, {
- cause: "panic",
- });
+ throw new Error(reason);
+ // TODO: 型エラーとなるため一時的にコメントアウト
+ // throw new Error(reason, {
+ // cause: "panic",
+ // });
}
diff --git a/web/app/chat/layout.tsx b/web/app/chat/layout.tsx
index fabe653b..31bd4e2b 100644
--- a/web/app/chat/layout.tsx
+++ b/web/app/chat/layout.tsx
@@ -9,7 +9,9 @@ export default function Layout({ children }: { children: React.ReactNode }) {
- {children}
+
+ {children}
+
diff --git a/web/app/friends/layout.tsx b/web/app/friends/layout.tsx
index 0146483c..721d92db 100644
--- a/web/app/friends/layout.tsx
+++ b/web/app/friends/layout.tsx
@@ -9,7 +9,9 @@ export default function Layout({ children }: { children: React.ReactNode }) {
- {children}
+
+ {children}
+
diff --git a/web/app/globals.css b/web/app/globals.css
index fe4c7bb8..d0c12603 100644
--- a/web/app/globals.css
+++ b/web/app/globals.css
@@ -11,3 +11,8 @@
.cm-li-btn {
@apply no-animation h-auto w-full justify-start rounded-none border-none bg-white px-6 py-4 text-left font-normal text-base shadow-none hover:bg-zinc-100 focus:bg-zinc-300;
}
+
+/* Bottom Bar の分の幅 */
+.cm-pb-footer {
+ padding-bottom: calc(3rem + env(safe-area-inset-bottom));
+}
diff --git a/web/app/home/layout.tsx b/web/app/home/layout.tsx
index ec50a110..cfb28d1f 100644
--- a/web/app/home/layout.tsx
+++ b/web/app/home/layout.tsx
@@ -11,7 +11,7 @@ export default function Layout({
<>
- {children}
+ {children}
>
diff --git a/web/app/layout.tsx b/web/app/layout.tsx
index f6ceb29d..4630892a 100644
--- a/web/app/layout.tsx
+++ b/web/app/layout.tsx
@@ -33,10 +33,11 @@ export default function RootLayout({
-
+ content="width=device-width, initial-scale=1, viewport-fit=cover"
+ /> */}
CourseMate
diff --git a/web/app/manifest.ts b/web/app/manifest.ts
new file mode 100644
index 00000000..84e0b73f
--- /dev/null
+++ b/web/app/manifest.ts
@@ -0,0 +1,25 @@
+import type { MetadataRoute } from "next";
+
+export default function manifest(): MetadataRoute.Manifest {
+ return {
+ name: "CourseMate",
+ short_name: "CourseMate",
+ description: "同じ授業を履修している友達を見つけられるアプリ",
+ start_url: "/",
+ display: "standalone",
+ background_color: "#ffffff",
+ theme_color: "#ffffff",
+ icons: [
+ {
+ src: "/icon-192x192.png",
+ sizes: "192x192",
+ type: "image/png",
+ },
+ {
+ src: "/icon-512x512.png",
+ sizes: "512x512",
+ type: "image/png",
+ },
+ ],
+ };
+}
diff --git a/web/app/search/layout.tsx b/web/app/search/layout.tsx
index 87bbc6a3..8f275579 100644
--- a/web/app/search/layout.tsx
+++ b/web/app/search/layout.tsx
@@ -9,7 +9,9 @@ export default function Layout({ children }: { children: React.ReactNode }) {
- {children}
+
+ {children}
+
diff --git a/web/app/settings/layout.tsx b/web/app/settings/layout.tsx
index 0dfbe9fc..f3d9fa7a 100644
--- a/web/app/settings/layout.tsx
+++ b/web/app/settings/layout.tsx
@@ -11,7 +11,9 @@ export default function Layout({
<>
- {children}
+
+ {children}
+
>
diff --git a/web/components/BottomBar.tsx b/web/components/BottomBar.tsx
index b644eb15..e1694695 100644
--- a/web/components/BottomBar.tsx
+++ b/web/components/BottomBar.tsx
@@ -36,7 +36,13 @@ function BottomBarCell({
export default function BottomBar(props: Props) {
const { activeTab } = props;
return (
-