|
|
@@ -1,8 +1,9 @@
|
|
|
import './domestic-summary.scss';
|
|
|
import { moveDir, formatFlucRate, formatIndexClose } from '@/types/worldIndex';
|
|
|
-import { type DomesticIndexRow, formatIndexChange, formatNet, formatCount, netDir } from '@/types/domesticSummary';
|
|
|
+import { type DomesticIndexRow, formatIndexChange, formatCount } from '@/types/domesticSummary';
|
|
|
|
|
|
-// 국내 증시 요약 — 코스피/코스닥/KOSPI200 카드. 지수·등락 + 투자자별 순매수(Phase 2 "–") + 등락종목수(코스피/코스닥) / 베이시스(KOSPI200).
|
|
|
+// 국내 증시 요약 — 코스피/코스닥/KOSPI200 카드. 지수값·전일비·등락률 + 등락종목수(코스피/코스닥만).
|
|
|
+// (투자자별 순매수·베이시스는 미지원으로 제외)
|
|
|
type Props = {
|
|
|
rows: DomesticIndexRow[];
|
|
|
};
|
|
|
@@ -20,7 +21,7 @@ export default function DomesticSummary({ rows }: Props)
|
|
|
<div className='dsum__grid'>
|
|
|
{rows.map((row) => {
|
|
|
const dir = moveDir(row.flucRateBp);
|
|
|
- const isKospi200 = row.key === 'kospi200';
|
|
|
+ const hasBreadth = row.advances !== null && row.advances !== undefined;
|
|
|
return (
|
|
|
<div key={row.key} className='dsum__card'>
|
|
|
<div className='dsum__name'>{row.name}</div>
|
|
|
@@ -34,31 +35,7 @@ export default function DomesticSummary({ rows }: Props)
|
|
|
</span>
|
|
|
</div>
|
|
|
|
|
|
- <div className='dsum__investors'>
|
|
|
- <div className='dsum__inv'>
|
|
|
- <span className='dsum__inv-k'>개인</span>
|
|
|
- <span className={`dsum__inv-v dsum__inv-v--${netDir(row.individualNet)}`}>{formatNet(row.individualNet)}</span>
|
|
|
- </div>
|
|
|
- <div className='dsum__inv'>
|
|
|
- <span className='dsum__inv-k'>외국인</span>
|
|
|
- <span className={`dsum__inv-v dsum__inv-v--${netDir(row.foreignNet)}`}>{formatNet(row.foreignNet)}</span>
|
|
|
- </div>
|
|
|
- <div className='dsum__inv'>
|
|
|
- <span className='dsum__inv-k'>기관</span>
|
|
|
- <span className={`dsum__inv-v dsum__inv-v--${netDir(row.institutionNet)}`}>{formatNet(row.institutionNet)}</span>
|
|
|
- </div>
|
|
|
- <div className='dsum__inv'>
|
|
|
- <span className='dsum__inv-k'>프로그램</span>
|
|
|
- <span className={`dsum__inv-v dsum__inv-v--${netDir(row.programNet)}`}>{formatNet(row.programNet)}</span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- {isKospi200 ? (
|
|
|
- <div className='dsum__foot'>
|
|
|
- <span className='dsum__basis-k'>베이시스</span>
|
|
|
- <span className='dsum__basis-v'>{row.basis !== null && row.basis !== undefined ? row.basis.toFixed(2) : '–'}</span>
|
|
|
- </div>
|
|
|
- ) : (
|
|
|
+ {hasBreadth && (
|
|
|
<div className='dsum__breadth'>
|
|
|
<span className='dsum__b'>상한 <em className='dsum__b--up'>{formatCount(row.limitUp)}</em></span>
|
|
|
<span className='dsum__b'>상승 <em className='dsum__b--up'>{formatCount(row.advances)}</em></span>
|