Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
479594c
feat: 정보 탭 구현
solssak Feb 26, 2025
31a5694
feat: 주식 정보 시간 업데이트 로직 변경 및 최적화
solssak Mar 5, 2025
3bfd7a8
Merge branch 'main' into feature/solssak/information
solssak Mar 5, 2025
057da44
Merge pull request #1 from solssak/feature/solssak/information
solssak Mar 5, 2025
32e974c
feat(홈): 내 예측 정보 구현
solssak Mar 5, 2025
8b08002
Merge branch 'main' into feature/solssak/information
solssak Mar 7, 2025
d42303c
Merge pull request #3 from solssak/feature/solssak/information
solssak Mar 7, 2025
b6beada
style: update pastInfo styles
solssak Mar 7, 2025
4616739
refactor: move page change logic to Home component
solssak Mar 7, 2025
af4ddd5
refactor(Home): Improve stock info display and refactor future data h…
solssak Mar 7, 2025
b36bf02
feat(Home): Add navigation logic to update URL query parameters
solssak Mar 7, 2025
bcab125
refactor(Home): Simplify futureInfos extraction using filter and sort
solssak Mar 7, 2025
081cbd2
fix(Home): Correct typo in FutureInfoWrapper component name
solssak Mar 7, 2025
dbaa996
feat(Home): Add message for empty futureInfos
solssak Mar 7, 2025
28e87ca
Merge remote-tracking branch 'upstream/main'
solssak Mar 7, 2025
907d141
Merge remote-tracking branch 'upstream/main'
solssak Mar 7, 2025
3cf9dee
feat: implement Information Drawer Button
solssak Mar 7, 2025
f678f85
style(home): Add Divider
solssak Mar 7, 2025
c466818
Merge pull request #4 from solssak/feature/solssak/information
solssak Mar 7, 2025
2b4d7f4
Merge branch 'main' of https://github.com/solssak/sdc-stock
solssak Mar 7, 2025
f0c54bb
Merge remote-tracking branch 'upstream/main'
solssak Mar 8, 2025
4d4c333
feat: Improve UI/UX for the icebreaking page
solssak Mar 8, 2025
568d6c2
Merge pull request #5 from solssak/feature/solssak/icebreaking
solssak Mar 8, 2025
1093aff
Merge remote-tracking branch 'upstream/main'
solssak Mar 12, 2025
fc9dd87
fix: swap color codes for stock price increase and decrease indicators
solssak Mar 14, 2025
cdb1b67
Merge branch 'main' of https://github.com/solssak/sdc-stock
solssak Mar 18, 2025
5504594
Merge remote-tracking branch 'upstream/main'
solssak Apr 10, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions app/koi-client/src/config/color.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,4 @@ export const colorDown = '#60A5FA';
export const pastelGreen = '#BEF264';
export const pastelViolet = '#c983ff';
export const green = '#16A34A';
export const BottomButtonBlue = '#007AFF';
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
import styled from '@emotion/styled';
import { Button, Input, List } from 'antd';
import { css } from '@emotion/react';
import styled from '@emotion/styled';
import { useDebounce } from '@toss/react';
import { List } from 'antd';
import { useAtomValue } from 'jotai';
import { useState } from 'react';
import { useDebounce } from '@toss/react';
import { useDisableScrollView } from '../../../hook/useDisableScrollView';
import * as COLOR from '../../../../../config/color';
import { Query } from '../../../../../hook';
import { UserStore } from '../../../../../store';
import { useDisableScrollView } from '../../../hook/useDisableScrollView';

const rules = [
{
Expand Down Expand Up @@ -74,7 +75,14 @@ export default function Introduce({ HeaderComponent = <></>, stockId }: Props) {
<BodyContainer>
<h2>💫 프로필카드 작성</h2>
<List
css={css({ backgroundColor: 'rgba(0,0,0,0.3)', borderRadius: '16px', width: '100%' })}
css={css({
'& .ant-list-item': {
borderBottom: '1px solid rgba(96, 96, 96, 0.5)',
},
backgroundColor: 'rgba(217,217,217,0.2)',
borderRadius: '16px',
width: '100%',
})}
dataSource={rules}
size="large"
renderItem={(item) => (
Expand All @@ -86,24 +94,28 @@ export default function Introduce({ HeaderComponent = <></>, stockId }: Props) {
</List.Item>
)}
/>
<Input.TextArea rows={3} value={introduction} onChange={handleIntroductionChange} />
<Button
type="primary"
size="large"
block
onClick={async () => {
setUser({
stockId,
userId,
userInfo: {
...user.userInfo,
introduction,
},
});
}}
>
저장하기
</Button>
<IntroduceArea
rows={3}
value={introduction}
onChange={handleIntroductionChange}
placeholder="프로필카드를 작성해보세요."
/>
<StickyBottom>
<SaveButton
onClick={async () => {
setUser({
stockId,
userId,
userInfo: {
...user.userInfo,
introduction,
},
});
}}
>
저장하기
</SaveButton>
</StickyBottom>
</BodyContainer>
</Container>
);
Expand All @@ -116,6 +128,7 @@ const Container = styled.div`
height: 100%;
padding: 16px;
box-sizing: border-box;
position: relative;
`;

const BodyContainer = styled.div`
Expand All @@ -127,3 +140,50 @@ const BodyContainer = styled.div`
height: 100%;
gap: 16px;
`;

const IntroduceArea = styled.textarea`
width: 100%;
height: 100px;
padding: 16px;
border-radius: 16px;
background-color: rgba(217, 217, 217, 0.2);
color: #ffffff;
font-size: 12px;
resize: none;
border: none;
outline: none;
box-sizing: border-box;
border: 1px solid #616161;
font-family: 'DungGeunMo';
`;

const StickyBottom = styled.div`
position: absolute;
bottom: 0;
left: 0;
width: 100%;
background-color: #252836;
border-top: 1px solid #374151;
padding: 20px;
box-sizing: border-box;
`;

const SaveButton = styled.button`
background-color: ${COLOR.BottomButtonBlue};
width: 100%;
font-family: 'DungGeunMo';
padding: 16px;
height: 56px;
border-radius: 4px;
color: white;
font-size: 14px;
border: none;
&:hover > span {
color: white;
}
&:disabled {
opacity: 50%;
cursor: not-allowed;
}
cursor: pointer;
`;
Original file line number Diff line number Diff line change
Expand Up @@ -41,22 +41,59 @@ export default function IntroduceResult({ HeaderComponent = <></>, stockId }: Pr
<BodyContainer>
<h2>🔍 프로필 추리하기</h2>
<List
css={css({ backgroundColor: 'rgba(0,0,0,0.3)', borderRadius: '16px', width: '100%' })}
css={css({
backgroundColor: 'rgba(217,217,217,0.2)',
border: '1px solid rgba(96, 96, 96, 0.5)',
borderRadius: '8px',
width: '100%',
})}
dataSource={rules}
size="large"
renderItem={(item) => (
<List.Item>
<List.Item.Meta
avatar={<>{item.emoji}</>}
title={<span css={css({ color: '#ffffff', wordBreak: 'keep-all' })}>{item.text}</span>}
title={
<span css={css({ color: '#ffffff', fontSize: '16px', wordBreak: 'keep-all' })}>{item.text}</span>
}
/>
</List.Item>
)}
/>
<Card title="첫번째 프로필" css={css({ overflowWrap: 'break-word', width: '100%' })}>
<Card
title="🙋🏻‍ 첫번째 프로필"
css={css({
'& .ant-card-head': {
borderBottom: '1px solid rgba(96, 96, 96, 0.5)',
color: '#ffffff',
},
backgroundColor: 'rgba(217,217,217,0.2)',
border: '1px solid rgba(96, 96, 96, 0.5)',
color: '#ffffff',
minHeight: '230px',
overflowWrap: 'break-word',
width: '100%',
})}
>
<MatchingReason>📌 당신과 이름이 비슷해요!</MatchingReason>
{userList?.[prevIndex]?.userInfo.introduction}
</Card>
<Card title="두번째 프로필" css={css({ overflowWrap: 'break-word', width: '100%' })}>
<Card
title="🙋🏻‍ 두번째 프로필"
css={css({
'& .ant-card-head': {
borderBottom: '1px solid rgba(96, 96, 96, 0.5)',
color: '#ffffff',
},
backgroundColor: 'rgba(217,217,217,0.2)',
border: '1px solid rgba(96, 96, 96, 0.5)',
color: '#ffffff',
minHeight: '230px',
overflowWrap: 'break-word',
width: '100%',
})}
>
<MatchingReason>📌 당신과 비슷한 관심사를 가지고 있어요!</MatchingReason>
{userList?.[nextIndex]?.userInfo.introduction}
</Card>
</BodyContainer>
Expand All @@ -76,9 +113,17 @@ const Container = styled.div`
const BodyContainer = styled.div`
display: flex;
flex-direction: column;
/* justify-content: center; */
align-items: center;
width: 100%;
height: 100%;
gap: 16px;
`;

const MatchingReason = styled.p`
text-align: center;
font-size: 14px;
font-weight: 500;
color: #ffcc00;
margin-bottom: 8px;
margin-top: 0;
`;