Add WhyRating tab with project links
- Brand Site (brand.nuc.lan) - Templates Site (templates.nuc.lan) - Outline Docs for documentation Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -5,14 +5,21 @@ import { Header, SearchBar, ServiceCard, BookmarkCard, CategorySection, Icon } f
|
|||||||
import { usePortal } from '@/lib/PortalContext';
|
import { usePortal } from '@/lib/PortalContext';
|
||||||
import { categoryLabels, categoryOrder, bookmarkCategoryLabels, bookmarkCategoryOrder, ServiceCategory, BookmarkCategory } from '@/lib/services';
|
import { categoryLabels, categoryOrder, bookmarkCategoryLabels, bookmarkCategoryOrder, ServiceCategory, BookmarkCategory } from '@/lib/services';
|
||||||
|
|
||||||
type TabId = 'services' | 'bookmarks' | 'settings';
|
type TabId = 'services' | 'bookmarks' | 'whyrating' | 'settings';
|
||||||
|
|
||||||
const tabs: { id: TabId; label: string; icon: string }[] = [
|
const tabs: { id: TabId; label: string; icon: string }[] = [
|
||||||
{ id: 'services', label: 'Services', icon: 'server' },
|
{ id: 'services', label: 'Services', icon: 'server' },
|
||||||
{ id: 'bookmarks', label: 'Bookmarks', icon: 'external-link' },
|
{ id: 'bookmarks', label: 'Bookmarks', icon: 'external-link' },
|
||||||
|
{ id: 'whyrating', label: 'WhyRating', icon: 'star' },
|
||||||
{ id: 'settings', label: 'Settings', icon: 'settings' },
|
{ id: 'settings', label: 'Settings', icon: 'settings' },
|
||||||
];
|
];
|
||||||
|
|
||||||
|
const whyratingLinks = [
|
||||||
|
{ name: 'Brand Site', url: 'http://brand.nuc.lan', icon: 'palette', description: 'WhyRating brand guidelines and assets' },
|
||||||
|
{ name: 'Templates Site', url: 'http://templates.nuc.lan', icon: 'layout', description: 'WhyRating email and document templates' },
|
||||||
|
{ name: 'Outline Docs', url: 'http://192.168.1.3:3080', icon: 'file-text', description: 'Project documentation and notes' },
|
||||||
|
];
|
||||||
|
|
||||||
export default function Home() {
|
export default function Home() {
|
||||||
const [activeTab, setActiveTab] = useState<TabId>('services');
|
const [activeTab, setActiveTab] = useState<TabId>('services');
|
||||||
const { filteredServices, filteredBookmarks, healthStatus, searchQuery, darkMode, setDarkMode, services } = usePortal();
|
const { filteredServices, filteredBookmarks, healthStatus, searchQuery, darkMode, setDarkMode, services } = usePortal();
|
||||||
@@ -136,6 +143,40 @@ export default function Home() {
|
|||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
|
|
||||||
|
case 'whyrating':
|
||||||
|
return (
|
||||||
|
<div className="max-w-2xl">
|
||||||
|
<div className="mb-6">
|
||||||
|
<h2 className="text-xl font-semibold text-slate-900 dark:text-stone-100 mb-2">
|
||||||
|
WhyRating.com
|
||||||
|
</h2>
|
||||||
|
<p className="text-sm text-slate-500 dark:text-stone-500">
|
||||||
|
Project resources and documentation
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div className="grid gap-4">
|
||||||
|
{whyratingLinks.map(link => (
|
||||||
|
<a
|
||||||
|
key={link.name}
|
||||||
|
href={link.url}
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
className="flex items-center gap-4 p-4 bg-white dark:bg-stone-900 rounded-xl border border-slate-100 dark:border-stone-700/50 shadow-sm hover:shadow-md hover:border-slate-200 dark:hover:border-stone-600/50 transition-all"
|
||||||
|
>
|
||||||
|
<div className="w-12 h-12 flex items-center justify-center rounded-lg bg-slate-100 dark:bg-stone-800">
|
||||||
|
<Icon name={link.icon} size={24} className="text-slate-600 dark:text-stone-400" />
|
||||||
|
</div>
|
||||||
|
<div className="flex-1">
|
||||||
|
<h3 className="font-medium text-slate-900 dark:text-stone-100">{link.name}</h3>
|
||||||
|
<p className="text-sm text-slate-500 dark:text-stone-500">{link.description}</p>
|
||||||
|
</div>
|
||||||
|
<Icon name="external-link" size={16} className="text-slate-400 dark:text-stone-600" />
|
||||||
|
</a>
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
|
||||||
case 'settings':
|
case 'settings':
|
||||||
return (
|
return (
|
||||||
<div className="max-w-2xl">
|
<div className="max-w-2xl">
|
||||||
|
|||||||
Reference in New Issue
Block a user