From 728a14402603f77efb7a6f615bfea4fb8a391389 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A0=95=EC=A7=84=EB=A6=AC/=EC=8A=A4=ED=86=A0=EC=96=B4?= =?UTF-8?q?=ED=94=84=EB=A1=A0=ED=8A=B8=ED=8C=80?= Date: Sat, 2 Mar 2024 01:32:02 +0900 Subject: [PATCH] feat: implement sticky on ticker page --- src/app/(input)/error.tsx | 26 +++++++++++++++++++ src/app/(input)/layout.tsx | 23 ++++++++++++++++ .../ticker/_components/intro.tsx | 9 ++++--- .../ticker/_components/ticker-content.tsx | 4 +-- .../ticker/_components/ticker-drawer.tsx | 0 .../ticker/_components/ticker-footer.tsx | 0 .../ticker/_components/ticker-list.tsx | 2 +- src/app/{(main) => (input)}/ticker/page.tsx | 0 8 files changed, 57 insertions(+), 7 deletions(-) create mode 100644 src/app/(input)/error.tsx create mode 100644 src/app/(input)/layout.tsx rename src/app/{(main) => (input)}/ticker/_components/intro.tsx (80%) rename src/app/{(main) => (input)}/ticker/_components/ticker-content.tsx (97%) rename src/app/{(main) => (input)}/ticker/_components/ticker-drawer.tsx (100%) rename src/app/{(main) => (input)}/ticker/_components/ticker-footer.tsx (100%) rename src/app/{(main) => (input)}/ticker/_components/ticker-list.tsx (95%) rename src/app/{(main) => (input)}/ticker/page.tsx (100%) diff --git a/src/app/(input)/error.tsx b/src/app/(input)/error.tsx new file mode 100644 index 0000000..bc7e888 --- /dev/null +++ b/src/app/(input)/error.tsx @@ -0,0 +1,26 @@ +"use client"; +import Image from "next/image"; +import { Button } from "@/components/common/button/button"; +import { useRouter } from "next/navigation"; +import ErrorImage from "@/app/(main)/_assets/error.png"; + +export default function Error({ error, reset }: { error: Error & { digest?: string }; reset: () => void }) { + const router = useRouter(); + + const handleButtonClick = () => { + router.replace("/"); + }; + + return ( +
+ Error Occurred +
+

Something went wrong!

+

Please Try Again

+
+ +
+ ); +} diff --git a/src/app/(input)/layout.tsx b/src/app/(input)/layout.tsx new file mode 100644 index 0000000..5f9b716 --- /dev/null +++ b/src/app/(input)/layout.tsx @@ -0,0 +1,23 @@ +import { Viewport } from "next"; +import Link from "next/link"; +import React from "react"; +import Logo from "@/components/common/logo/logo"; + +export const viewport: Viewport = { + themeColor: "var(--color-white)", +}; + +const InputLayout = ({ children }: { children: React.ReactNode }) => { + return ( +
+
+ + + +
+
{children}
+
+ ); +}; + +export default InputLayout; diff --git a/src/app/(main)/ticker/_components/intro.tsx b/src/app/(input)/ticker/_components/intro.tsx similarity index 80% rename from src/app/(main)/ticker/_components/intro.tsx rename to src/app/(input)/ticker/_components/intro.tsx index e4142a3..343378a 100644 --- a/src/app/(main)/ticker/_components/intro.tsx +++ b/src/app/(input)/ticker/_components/intro.tsx @@ -10,11 +10,11 @@ const Intro = () => { const hasStock = stocks.length > 0; return ( -
-

+ <> +

You added {stocks.length} {`${stocks.length > 1 ? "stocks" : "stock"}`}.

-
+
-
+
+ ); }; diff --git a/src/app/(main)/ticker/_components/ticker-content.tsx b/src/app/(input)/ticker/_components/ticker-content.tsx similarity index 97% rename from src/app/(main)/ticker/_components/ticker-content.tsx rename to src/app/(input)/ticker/_components/ticker-content.tsx index 4431392..4b4474d 100644 --- a/src/app/(main)/ticker/_components/ticker-content.tsx +++ b/src/app/(input)/ticker/_components/ticker-content.tsx @@ -1,7 +1,7 @@ "use client"; -import Intro from "@/app/(main)/ticker/_components/intro"; -import { TickerDrawer } from "@/app/(main)/ticker/_components/ticker-drawer"; +import Intro from "@/app/(input)/ticker/_components/intro"; +import { TickerDrawer } from "@/app/(input)/ticker/_components/ticker-drawer"; import { Dialog } from "@/components/common/dialog/dialog"; import Toast from "@/components/common/toast/toast"; import { Stock, useStocksStore } from "@/state/stores/stocks-store"; diff --git a/src/app/(main)/ticker/_components/ticker-drawer.tsx b/src/app/(input)/ticker/_components/ticker-drawer.tsx similarity index 100% rename from src/app/(main)/ticker/_components/ticker-drawer.tsx rename to src/app/(input)/ticker/_components/ticker-drawer.tsx diff --git a/src/app/(main)/ticker/_components/ticker-footer.tsx b/src/app/(input)/ticker/_components/ticker-footer.tsx similarity index 100% rename from src/app/(main)/ticker/_components/ticker-footer.tsx rename to src/app/(input)/ticker/_components/ticker-footer.tsx diff --git a/src/app/(main)/ticker/_components/ticker-list.tsx b/src/app/(input)/ticker/_components/ticker-list.tsx similarity index 95% rename from src/app/(main)/ticker/_components/ticker-list.tsx rename to src/app/(input)/ticker/_components/ticker-list.tsx index 7d54267..582a1b4 100644 --- a/src/app/(main)/ticker/_components/ticker-list.tsx +++ b/src/app/(input)/ticker/_components/ticker-list.tsx @@ -38,7 +38,7 @@ const TickerList = React.memo(({ data, tickerName, hasShares, onClick }: TickerP ); return ( -
+
{data.map((item, index) => (
onClick(item)}> diff --git a/src/app/(main)/ticker/page.tsx b/src/app/(input)/ticker/page.tsx similarity index 100% rename from src/app/(main)/ticker/page.tsx rename to src/app/(input)/ticker/page.tsx