Skip to content

Commit 2921017

Browse files
chriscrosstalkclaude
authored andcommitted
feat(collections): Expand curated categories and improve tier modal UX
- Add 3 new curated categories: DIY & Repair, Agriculture & Food, Computing & Technology - Reorganize content logically (moved DIY/food content from Survival to appropriate new categories) - Update tier selection modal to show only each tier's own resources - Add "(plus everything in X)" text for inherited tier content - Reduces visual redundancy and makes tiers easier to compare Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 9a93fc9 commit 2921017

File tree

2 files changed

+281
-74
lines changed

2 files changed

+281
-74
lines changed

admin/inertia/components/TierSelectionModal.tsx

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -129,9 +129,14 @@ const TierSelectionModal: React.FC<TierSelectionModalProps> = ({
129129

130130
<div className="space-y-4">
131131
{category.tiers.map((tier) => {
132-
const allResources = getAllResourcesForTier(tier)
133132
const totalSize = getTierTotalSize(tier)
134133
const isSelected = localSelectedSlug === tier.slug
134+
const includedTierName = tier.includesTier
135+
? category.tiers.find(t => t.slug === tier.includesTier)?.name
136+
: null
137+
// Only show this tier's own resources (not inherited)
138+
const ownResources = tier.resources
139+
const ownResourceCount = ownResources.length
135140

136141
return (
137142
<div
@@ -150,21 +155,28 @@ const TierSelectionModal: React.FC<TierSelectionModalProps> = ({
150155
<h3 className="text-lg font-semibold text-gray-900">
151156
{tier.name}
152157
</h3>
153-
{tier.includesTier && (
158+
{includedTierName && (
154159
<span className="text-xs text-gray-500">
155-
(includes {category.tiers.find(t => t.slug === tier.includesTier)?.name})
160+
(includes {includedTierName})
156161
</span>
157162
)}
158163
</div>
159164
<p className="text-gray-600 text-sm mb-3">{tier.description}</p>
160165

161-
{/* Resources preview */}
166+
{/* Resources preview - only show this tier's own resources */}
162167
<div className="bg-gray-50 rounded p-3">
163168
<p className="text-xs text-gray-500 mb-2 font-medium">
164-
{allResources.length} resources included:
169+
{includedTierName ? (
170+
<>
171+
{ownResourceCount} additional {ownResourceCount === 1 ? 'resource' : 'resources'}
172+
<span className="text-gray-400"> (plus everything in {includedTierName})</span>
173+
</>
174+
) : (
175+
<>{ownResourceCount} {ownResourceCount === 1 ? 'resource' : 'resources'} included</>
176+
)}
165177
</p>
166178
<div className="grid grid-cols-1 md:grid-cols-2 gap-2">
167-
{allResources.map((resource, idx) => (
179+
{ownResources.map((resource, idx) => (
168180
<div key={idx} className="flex items-start text-sm">
169181
<IconCheck size={14} className="text-desert-green mr-1.5 mt-0.5 flex-shrink-0" />
170182
<div>

0 commit comments

Comments
 (0)