Skip to content

Commit f118f3b

Browse files
committed
test: removed button to have a testing deploy
1 parent 704f479 commit f118f3b

File tree

2 files changed

+116
-87
lines changed

2 files changed

+116
-87
lines changed

src/components/layout/MainPage.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import { useEntries } from '@/features/statements';
1212
import { Mail } from 'lucide-react';
1313
import StatementWizard from '@/features/wizard/components/StatementWizard';
1414
import { ShareEmailModal } from '@/components/modals';
15-
import TestStatementButton from '@/components/debug/TestButton';
15+
// import TestStatementButton from '@/components/debug/TestButton';
1616
import Footer from './Footer';
1717

1818
const MainPage: React.FC = () => {
@@ -90,9 +90,9 @@ const MainPage: React.FC = () => {
9090
</Tooltip>
9191

9292
{/* Debug button */}
93-
<div className='mt-2'>
93+
{/* <div className='mt-2'>
9494
<TestStatementButton />
95-
</div>
95+
</div> */}
9696
</div>
9797

9898
{/* Conditionally render the wizard modal */}

src/features/statements/components/StatementList.tsx

Lines changed: 113 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -352,6 +352,9 @@ const StatementList: React.FC<StatementListProps> = ({ username }) => {
352352
isSnoozedQuestionsSectionExpanded,
353353
setIsSnoozedQuestionsSectionExpanded,
354354
] = useState(true);
355+
356+
// State for managing the visibility of category sections
357+
const [collapsedCategories, setCollapsedCategories] = useState<Record<string, boolean>>({});
355358

356359
// Move the hook call to the top level
357360
const { categoryCounts } = useAnsweredCountByCategory();
@@ -377,106 +380,132 @@ const StatementList: React.FC<StatementListProps> = ({ username }) => {
377380
const isComplete =
378381
categoryStatus.total > 0 &&
379382
categoryStatus.answered === categoryStatus.total;
383+
384+
// Check if category is collapsed
385+
const isCollapsed = collapsedCategories[catId] || false;
386+
387+
// Toggle collapsed state for this category
388+
const toggleCollapsed = () => {
389+
setCollapsedCategories(prev => ({
390+
...prev,
391+
[catId]: !prev[catId]
392+
}));
393+
};
380394

381395
return (
382396
<div key={catId} className='mb-4 md:mb-8 category-section'>
383397
{/* Folder Tab Design */}
384398
<div className={`relative z-10`}>
385399
<div
386-
className={`inline-block px-4 py-1 md:py-2 rounded-t-lg ${
400+
className={`${isCollapsed ? 'w-full' : 'inline-block'} px-4 py-1 md:py-2 ${
401+
isCollapsed ? 'rounded-lg' : 'rounded-t-lg'
402+
} ${
387403
isComplete
388404
? 'bg-green-200 border-green-500'
389405
: 'bg-slate-100 border-slate-300'
390-
} border-t border-l border-r border-b-0`}
406+
} border ${isCollapsed ? '' : 'border-b-0'} cursor-pointer`}
407+
onClick={toggleCollapsed}
408+
aria-expanded={!isCollapsed}
409+
aria-controls={`category-content-${catId}`}
391410
>
392-
<div className='flex items-center space-x-2'>
393-
<h3 className='text-lg font-semibold'>
394-
{formatCategoryName(catLabel)}
395-
</h3>
396-
<SmallCircularQuestionCounter size={18} categoryId={catId} />
411+
<div className='flex items-center justify-between'>
412+
<div className='flex items-center space-x-2'>
413+
<h3 className='text-lg font-semibold'>
414+
{formatCategoryName(catLabel)}
415+
</h3>
416+
<SmallCircularQuestionCounter size={18} categoryId={catId} />
417+
</div>
418+
{isCollapsed ? (
419+
<ChevronDown className='h-5 w-5' />
420+
) : (
421+
<ChevronUp className='h-5 w-5' />
422+
)}
397423
</div>
398424
</div>
399425
</div>
400426

401427
{/* Folder Content */}
402-
<div
403-
className={`border rounded-tr-lg rounded-b-lg p-2 md:p-4 -mt-[1px] ${
404-
isComplete
405-
? 'bg-white border-green-500'
406-
: 'bg-white border-slate-300'
407-
}`}
408-
>
409-
{presetForCat.length > 0 && (
410-
<ul className='space-y-2'>
411-
{presetForCat.map((presetQuestion) => (
412-
<li key={`preset-${presetQuestion.id}`}>
413-
<QuestionCard
414-
presetQuestion={presetQuestion}
415-
onSelect={handlePresetQuestionSelect}
416-
onToggleSnooze={handleToggleQuestionSnooze}
417-
/>
418-
</li>
419-
))}
420-
</ul>
421-
)}
422-
{statementsForCat.length > 0 && (
423-
<ul className='space-y-4 mt-4'>
424-
{statementsForCat.map((statement) => (
425-
<li key={statement.id}>
426-
<StatementItem
427-
statement={statement}
428-
isEditing={statement.id === editingStatementId}
429-
editingPart={null}
430-
originalCategory={originalCategories[statement.id]}
431-
onPartClick={handlePartClick}
432-
onLocalSave={handleLocalSave}
433-
onCancel={() => {
434-
// If we have the original, restore it
435-
if (originalEntries[statement.id]) {
436-
// Restore the original entry from our backup
437-
setData({
438-
type: 'UPDATE_ENTRY',
439-
payload: originalEntries[statement.id],
440-
});
441-
442-
// Remove from originalEntries and originalCategories
443-
setOriginalEntries((prev) => {
444-
const newEntries = { ...prev };
445-
delete newEntries[statement.id];
446-
return newEntries;
447-
});
448-
449-
// Also clear from original categories
450-
setOriginalCategories((prev) => {
451-
const newCategories = { ...prev };
452-
delete newCategories[statement.id];
453-
return newCategories;
454-
});
428+
{!isCollapsed && (
429+
<div
430+
id={`category-content-${catId}`}
431+
className={`border rounded-tr-lg rounded-b-lg p-2 md:p-4 -mt-[1px] ${
432+
isComplete
433+
? 'bg-white border-green-500'
434+
: 'bg-white border-slate-300'
435+
}`}
436+
>
437+
{presetForCat.length > 0 && (
438+
<ul className='space-y-2'>
439+
{presetForCat.map((presetQuestion) => (
440+
<li key={`preset-${presetQuestion.id}`}>
441+
<QuestionCard
442+
presetQuestion={presetQuestion}
443+
onSelect={handlePresetQuestionSelect}
444+
onToggleSnooze={handleToggleQuestionSnooze}
445+
/>
446+
</li>
447+
))}
448+
</ul>
449+
)}
450+
{statementsForCat.length > 0 && (
451+
<ul className='space-y-4 mt-4'>
452+
{statementsForCat.map((statement) => (
453+
<li key={statement.id}>
454+
<StatementItem
455+
statement={statement}
456+
isEditing={statement.id === editingStatementId}
457+
editingPart={null}
458+
originalCategory={originalCategories[statement.id]}
459+
onPartClick={handlePartClick}
460+
onLocalSave={handleLocalSave}
461+
onCancel={() => {
462+
// If we have the original, restore it
463+
if (originalEntries[statement.id]) {
464+
// Restore the original entry from our backup
465+
setData({
466+
type: 'UPDATE_ENTRY',
467+
payload: originalEntries[statement.id],
468+
});
469+
470+
// Remove from originalEntries and originalCategories
471+
setOriginalEntries((prev) => {
472+
const newEntries = { ...prev };
473+
delete newEntries[statement.id];
474+
return newEntries;
475+
});
476+
477+
// Also clear from original categories
478+
setOriginalCategories((prev) => {
479+
const newCategories = { ...prev };
480+
delete newCategories[statement.id];
481+
return newCategories;
482+
});
483+
}
484+
485+
// Exit edit mode
486+
setEditingStatementId(null);
487+
}}
488+
onDelete={handleDeleteClick}
489+
onEditClick={handleEditClick}
490+
onAddAction={handleAddAction}
491+
onEditAction={handleEditAction}
492+
onDeleteAction={handleDeleteAction}
493+
onReset={
494+
statement.presetId
495+
? () => handleResetClick(statement.id)
496+
: undefined
455497
}
456-
457-
// Exit edit mode
458-
setEditingStatementId(null);
459-
}}
460-
onDelete={handleDeleteClick}
461-
onEditClick={handleEditClick}
462-
onAddAction={handleAddAction}
463-
onEditAction={handleEditAction}
464-
onDeleteAction={handleDeleteAction}
465-
onReset={
466-
statement.presetId
467-
? () => handleResetClick(statement.id)
468-
: undefined
469-
}
470-
onToggleArchived={handleToggleArchived}
471-
onToggleActionResolved={(actionId: string) =>
472-
handleToggleActionResolved(statement.id, actionId)
473-
}
474-
/>
475-
</li>
476-
))}
477-
</ul>
478-
)}
479-
</div>
498+
onToggleArchived={handleToggleArchived}
499+
onToggleActionResolved={(actionId: string) =>
500+
handleToggleActionResolved(statement.id, actionId)
501+
}
502+
/>
503+
</li>
504+
))}
505+
</ul>
506+
)}
507+
</div>
508+
)}
480509
</div>
481510
);
482511
};

0 commit comments

Comments
 (0)