chore: test deploy snapshot
This commit is contained in:
@@ -186,7 +186,7 @@ type ShareNotificationClientStatus = {
|
||||
tone: ShareNotificationStatusTone;
|
||||
};
|
||||
type ShareProcessInspectorMode = 'default' | 'fullscreen' | 'minimized';
|
||||
type ShareProcessInspectorExpandedSection = 'summary' | 'narratives' | null;
|
||||
type ShareProcessInspectorExpandedSection = 'summary' | 'checklist' | 'narratives' | 'log' | null;
|
||||
type ShareProcessChecklistStep = {
|
||||
key: string;
|
||||
label: string;
|
||||
@@ -5565,7 +5565,7 @@ export function ChatSharePage() {
|
||||
|
||||
setActiveProcessInspectorRequestId(requestId);
|
||||
setProcessInspectorMode('default');
|
||||
setProcessInspectorExpandedSection(null);
|
||||
setProcessInspectorExpandedSection('checklist');
|
||||
}, []);
|
||||
|
||||
const closeProcessInspector = useCallback(() => {
|
||||
@@ -5577,9 +5577,16 @@ export function ChatSharePage() {
|
||||
setProcessInspectorExpandedSection((current) => (current === 'summary' ? null : 'summary'));
|
||||
}, []);
|
||||
|
||||
const handleToggleProcessInspectorChecklist = useCallback(() => {
|
||||
setProcessInspectorExpandedSection((current) => (current === 'checklist' ? null : 'checklist'));
|
||||
}, []);
|
||||
|
||||
const handleToggleProcessInspectorNarratives = useCallback(() => {
|
||||
setProcessInspectorExpandedSection((current) => (current === 'narratives' ? null : 'narratives'));
|
||||
}, []);
|
||||
const handleToggleProcessInspectorLog = useCallback(() => {
|
||||
setProcessInspectorExpandedSection((current) => (current === 'log' ? null : 'log'));
|
||||
}, []);
|
||||
|
||||
const handleProgramMinimizedPointerDown = useCallback((event: ReactPointerEvent<HTMLDivElement>) => {
|
||||
if (event.pointerType === 'mouse' && event.button !== 0) {
|
||||
@@ -7506,7 +7513,9 @@ export function ChatSharePage() {
|
||||
[activeProcessInspectorRequestId, requestById],
|
||||
);
|
||||
const isProcessInspectorSummaryCollapsed = processInspectorExpandedSection !== 'summary';
|
||||
const isProcessInspectorChecklistCollapsed = processInspectorExpandedSection !== 'checklist';
|
||||
const isProcessInspectorNarrativesCollapsed = processInspectorExpandedSection !== 'narratives';
|
||||
const isProcessInspectorLogCollapsed = processInspectorExpandedSection !== 'log';
|
||||
const activeProcessInspectorPayload = useMemo(() => {
|
||||
if (!activeProcessInspectorRequest) {
|
||||
return null;
|
||||
@@ -7720,26 +7729,37 @@ export function ChatSharePage() {
|
||||
<section className="chat-share-page__process-inspector-section chat-share-page__process-inspector-section--checklist">
|
||||
<div className="chat-share-page__process-inspector-section-head">
|
||||
<Text strong>계획 체크리스트</Text>
|
||||
<Button
|
||||
type="text"
|
||||
size="small"
|
||||
className="chat-share-page__process-inspector-summary-toggle"
|
||||
icon={isProcessInspectorChecklistCollapsed ? <DownOutlined /> : <UpOutlined />}
|
||||
onClick={handleToggleProcessInspectorChecklist}
|
||||
>
|
||||
{isProcessInspectorChecklistCollapsed ? '보기' : '접기'}
|
||||
</Button>
|
||||
</div>
|
||||
<div className="chat-share-page__process-inspector-checklist" role="table" aria-label="계획 체크리스트">
|
||||
{activeProcessInspectorPayload.checklist.map((step) => (
|
||||
<div key={step.key} className="chat-share-page__process-inspector-check-item" role="row">
|
||||
<Text strong className="chat-share-page__process-inspector-check-title">{step.label}</Text>
|
||||
<Tag
|
||||
color={
|
||||
step.status === 'completed'
|
||||
? 'success'
|
||||
: step.status === 'in_progress'
|
||||
? 'processing'
|
||||
: 'default'
|
||||
}
|
||||
>
|
||||
{step.status === 'completed' ? '완료' : step.status === 'in_progress' ? '진행중' : '대기'}
|
||||
</Tag>
|
||||
<Text type="secondary" className="chat-share-page__process-inspector-check-note">{step.note}</Text>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
{isProcessInspectorChecklistCollapsed ? null : (
|
||||
<div className="chat-share-page__process-inspector-checklist" role="table" aria-label="계획 체크리스트">
|
||||
{activeProcessInspectorPayload.checklist.map((step) => (
|
||||
<div key={step.key} className="chat-share-page__process-inspector-check-item" role="row">
|
||||
<Text strong className="chat-share-page__process-inspector-check-title">{step.label}</Text>
|
||||
<Tag
|
||||
color={
|
||||
step.status === 'completed'
|
||||
? 'success'
|
||||
: step.status === 'in_progress'
|
||||
? 'processing'
|
||||
: 'default'
|
||||
}
|
||||
>
|
||||
{step.status === 'completed' ? '완료' : step.status === 'in_progress' ? '진행중' : '대기'}
|
||||
</Tag>
|
||||
<Text type="secondary" className="chat-share-page__process-inspector-check-note">{step.note}</Text>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
)}
|
||||
</section>
|
||||
<section className="chat-share-page__process-inspector-section chat-share-page__process-inspector-section--narratives">
|
||||
<div className="chat-share-page__process-inspector-section-head">
|
||||
@@ -7768,20 +7788,33 @@ export function ChatSharePage() {
|
||||
<section className="chat-share-page__process-inspector-section chat-share-page__process-inspector-section--log">
|
||||
<div className="chat-share-page__process-inspector-section-head">
|
||||
<Text strong>활동 로그</Text>
|
||||
<Text type="secondary">{activeProcessInspectorPayload.activityLines.length}줄</Text>
|
||||
</div>
|
||||
<div className="chat-share-page__process-inspector-log" role="table" aria-label="활동 로그">
|
||||
{activeProcessInspectorPayload.activityLines.length > 0 ? (
|
||||
activeProcessInspectorPayload.activityLines.map((line, index) => (
|
||||
<div key={`${activeProcessInspectorPayload.requestId}:${index}`} className="chat-share-page__process-inspector-log-line" role="row">
|
||||
<span className="chat-share-page__process-inspector-log-index">{String(index + 1).padStart(2, '0')}</span>
|
||||
<span className="chat-share-page__process-inspector-log-text">{line}</span>
|
||||
</div>
|
||||
))
|
||||
) : (
|
||||
<Text type="secondary">활동 로그가 아직 기록되지 않았습니다.</Text>
|
||||
)}
|
||||
<div className="chat-share-page__process-inspector-section-head-actions">
|
||||
<Text type="secondary">{activeProcessInspectorPayload.activityLines.length}줄</Text>
|
||||
<Button
|
||||
type="text"
|
||||
size="small"
|
||||
className="chat-share-page__process-inspector-summary-toggle"
|
||||
icon={isProcessInspectorLogCollapsed ? <DownOutlined /> : <UpOutlined />}
|
||||
onClick={handleToggleProcessInspectorLog}
|
||||
>
|
||||
{isProcessInspectorLogCollapsed ? '보기' : '접기'}
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
{isProcessInspectorLogCollapsed ? null : (
|
||||
<div className="chat-share-page__process-inspector-log" role="table" aria-label="활동 로그">
|
||||
{activeProcessInspectorPayload.activityLines.length > 0 ? (
|
||||
activeProcessInspectorPayload.activityLines.map((line, index) => (
|
||||
<div key={`${activeProcessInspectorPayload.requestId}:${index}`} className="chat-share-page__process-inspector-log-line" role="row">
|
||||
<span className="chat-share-page__process-inspector-log-index">{String(index + 1).padStart(2, '0')}</span>
|
||||
<span className="chat-share-page__process-inspector-log-text">{line}</span>
|
||||
</div>
|
||||
))
|
||||
) : (
|
||||
<Text type="secondary">활동 로그가 아직 기록되지 않았습니다.</Text>
|
||||
)}
|
||||
</div>
|
||||
)}
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user