diff --git a/.eslintrc.json b/.eslintrc.json
index 1384054..0469b97 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -51,6 +51,7 @@
}
],
"no-unused-vars": "warn",
- "operator-linebreak": "off"
+ "operator-linebreak": "off",
+ "@typescript-eslint/no-explicit-any": "off"
}
}
diff --git a/README.md b/README.md
index d3e4713..3a4a9a8 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,37 @@
-# 프리무스
+# 프리무스
-아이디어 검증 툴 서비스
+> 💡 아이디어 검증 툴 서비스
+
+
+
+
+[`https://primus.today`](https://primus-chi.vercel.app)
+
+
+
+
+## 🪐 Main Service
+
+#### `아이디어 툴`
+
+(자료 추가 예정)
+
+#### `아이디어 검증`
+
+#### `적극적 투자 지표`
+
+#### `결과 도출`
+
+
+
+## 🌝 Project
+
+#### `팀원`
+
+> 테오의 스프린트 17기
+
+| [FE 스리](https://github.com/hanseulhee) | [BE 최롱](https://github.com/Choirong) | [FE 피기](https://github.com/03hoho03) | [FE 환두](https://github.com/chaduhwan) |
+| :---------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------: |
+| | | | |
+
+#### `기술 스택`
diff --git a/app/(route)/indicators/_components/button/KakaoShareButton.tsx b/app/(route)/indicators/_components/button/KakaoShareButton.tsx
new file mode 100644
index 0000000..e551347
--- /dev/null
+++ b/app/(route)/indicators/_components/button/KakaoShareButton.tsx
@@ -0,0 +1,40 @@
+'use client'
+
+import { resultAtom, selectedItemAtom } from '@/app/_store/atom'
+import { useEffect } from 'react'
+import { useRecoilValue } from 'recoil'
+
+const id = 'kakao-sdk'
+
+function KakaoShareButton() {
+ const selectedItem = useRecoilValue(selectedItemAtom)
+ const resultItem = useRecoilValue(resultAtom)
+
+ useEffect(() => {
+ if (document.getElementById(id) == null) {
+ const script = document.createElement('script')
+ script.id = id
+ script.src = 'https://developers.kakao.com/sdk/js/kakao.js'
+ script.onload = () => {
+ window.Kakao.init(process.env.NEXT_PUBLIC_KAKAO_SHARE_KEY)
+ window.Kakao.isInitialized()
+ }
+ document.body.appendChild(script)
+ }
+ }, [])
+
+ const kakaoShare = () => {
+ window.Kakao.Share.sendCustom({
+ installTalk: true,
+ templateId: 106777,
+ templateArgs: {
+ name: `${selectedItem?.name}`,
+ result: `${resultItem}`,
+ },
+ })
+ }
+
+ return
+}
+
+export default KakaoShareButton
diff --git a/app/(route)/indicators/_components/result/index.tsx b/app/(route)/indicators/_components/result/index.tsx
index 904e871..b46335b 100644
--- a/app/(route)/indicators/_components/result/index.tsx
+++ b/app/(route)/indicators/_components/result/index.tsx
@@ -1,7 +1,12 @@
import Nav from '@/app/_common/nav'
import Title from '@/app/_common/text/title'
-import { selectedItemAtom, totalinputValueAtom } from '@/app/_store/atom'
-import { useRecoilValue } from 'recoil'
+import {
+ resultAtom,
+ selectedItemAtom,
+ totalinputValueAtom,
+} from '@/app/_store/atom'
+import { useRecoilState, useRecoilValue } from 'recoil'
+import KakaoShareButton from '../button/KakaoShareButton'
import Pyramid from './Pyramid'
import S from './result.module.css'
import ResultItem from './resultItem'
@@ -12,7 +17,9 @@ function Result() {
const selectedItem = useRecoilValue(selectedItemAtom)
const totalinputValue = parseInt(useRecoilValue(totalinputValueAtom))
- const result =
+ const [result, setResult] = useRecoilState(resultAtom)
+
+ const resultValue =
selectedItem?.score &&
selectedItem?.people &&
Math.floor(
@@ -21,16 +28,19 @@ function Result() {
100,
)
+ setResult(resultValue!)
+ console.log(resultValue)
+
let resultAmount = ''
- if (result! >= 90) {
+ if (resultValue! >= 90) {
resultAmount += '매우 높음'
- } else if (result! >= 70) {
+ } else if (resultValue! >= 70) {
resultAmount += '높음'
- } else if (result! >= 50) {
+ } else if (resultValue! >= 50) {
resultAmount += '보통'
- } else if (result! >= 30) {
+ } else if (resultValue! >= 30) {
resultAmount += '낮음'
- } else if (result! >= 10) {
+ } else if (30 > resultValue! && resultValue! >= 0) {
resultAmount += '매우 낮음'
}
@@ -85,7 +95,9 @@ function Result() {
>
)
diff --git a/app/(route)/indicators/_components/result/result.module.css b/app/(route)/indicators/_components/result/result.module.css
index ed4d0a0..beadec2 100644
--- a/app/(route)/indicators/_components/result/result.module.css
+++ b/app/(route)/indicators/_components/result/result.module.css
@@ -121,9 +121,9 @@
color: white;
font-weight: 700;
- font-size: 1.2rem;
+ font-size: 1.1rem;
text-align: center;
- width: 100px;
+ width: 160px;
height: auto;
padding: 10px 20px;
border-radius: 9px;
diff --git a/app/_store/atom.ts b/app/_store/atom.ts
index 6950802..d15fdef 100644
--- a/app/_store/atom.ts
+++ b/app/_store/atom.ts
@@ -9,6 +9,11 @@ export interface ActiveInvestmentItemType {
// type ActiveType = Omit
+export const resultAtom = atom({
+ key: 'resultAtom',
+ default: 0,
+})
+
export const selectedItemAtom = atom({
key: 'selectedItemAtom',
default: null,
diff --git a/app/_types/global.d.ts b/app/_types/global.d.ts
index f2da8b4..b91039c 100644
--- a/app/_types/global.d.ts
+++ b/app/_types/global.d.ts
@@ -1,3 +1,7 @@
declare module '*.css'
declare module '*.sass'
+
+interface Window {
+ Kakao: any
+}
diff --git a/app/layout.tsx b/app/layout.tsx
index a4e9c63..4e840fe 100644
--- a/app/layout.tsx
+++ b/app/layout.tsx
@@ -1,9 +1,22 @@
+import type { Metadata } from 'next'
+import logo from '../app/_assets/_images/logo.png'
import Layout from './_components/layout'
import Recoil from './_store/recoil'
import './_style/globals.css'
import './_style/variables.css'
import Providers from './_utils/provider'
+export const metadata: Metadata = {
+ title: '프리무스',
+ description: '아이디어 검증 툴 서비스',
+ viewport: {
+ width: 'device-width',
+ initialScale: 1,
+ userScalable: false,
+ },
+ icons: { icon: logo.src },
+}
+
function RootLayout({
children,
}: Readonly<{