diff --git a/src/app/notebooks/[id]/page.tsx b/src/app/notebooks/[id]/page.tsx index 44257f1..375eed2 100644 --- a/src/app/notebooks/[id]/page.tsx +++ b/src/app/notebooks/[id]/page.tsx @@ -208,7 +208,7 @@ export default function NotebookDetailPage() { : 'text-slate-400 hover:text-white' }`} > - AI Notebook + Open Notebook diff --git a/src/app/notebooks/page.tsx b/src/app/notebooks/page.tsx index 2ff150c..c666afb 100644 --- a/src/app/notebooks/page.tsx +++ b/src/app/notebooks/page.tsx @@ -3,7 +3,6 @@ import { useEffect, useState } from 'react'; import Link from 'next/link'; import { NotebookCard } from '@/components/NotebookCard'; -import { SearchBar } from '@/components/SearchBar'; import { Header } from '@/components/Header'; interface NotebookData { @@ -32,25 +31,15 @@ export default function NotebooksPage() {
-
- -
- - New Notebook - - - + + New Notebook + + } /> - {/* Mobile search */} -
- -
-
{loading ? (
diff --git a/src/app/notes/new/page.tsx b/src/app/notes/new/page.tsx index 230fcff..8c4f620 100644 --- a/src/app/notes/new/page.tsx +++ b/src/app/notes/new/page.tsx @@ -42,11 +42,14 @@ function NewNoteForm() { const router = useRouter(); const searchParams = useSearchParams(); const preselectedNotebook = searchParams.get('notebookId'); + const preselectedType = searchParams.get('type'); const [title, setTitle] = useState(''); const [content, setContent] = useState(''); const [bodyJson, setBodyJson] = useState(null); - const [type, setType] = useState('NOTE'); + const [type, setType] = useState( + NOTE_TYPES.some((t) => t.value === preselectedType) ? preselectedType! : 'NOTE' + ); const [url, setUrl] = useState(''); const [language, setLanguage] = useState(''); const [tags, setTags] = useState(''); diff --git a/src/app/page.tsx b/src/app/page.tsx index c39ae82..b12ae6b 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -3,7 +3,6 @@ import { useEffect, useState } from 'react'; import Link from 'next/link'; import { NotebookCard } from '@/components/NotebookCard'; -import { SearchBar } from '@/components/SearchBar'; import { EcosystemFooter } from '@/components/EcosystemFooter'; import { TranscriptionDemo } from '@/components/TranscriptionDemo'; @@ -30,11 +29,6 @@ export default function HomePage() { return (
- {/* Mobile search */} -
- -
- {/* Hero */}
diff --git a/src/app/voice/page.tsx b/src/app/voice/page.tsx index 8459708..5e84464 100644 --- a/src/app/voice/page.tsx +++ b/src/app/voice/page.tsx @@ -713,7 +713,7 @@ export default function VoicePage() { return (
{/* Header */} -
+
diff --git a/src/components/AppSwitcher.tsx b/src/components/AppSwitcher.tsx index 65a115d..24f2dcc 100644 --- a/src/components/AppSwitcher.tsx +++ b/src/components/AppSwitcher.tsx @@ -17,6 +17,8 @@ const MODULES: AppModule[] = [ { id: 'space', name: 'rSpace', badge: 'rS', color: 'bg-teal-300', emoji: '🎨', description: 'Real-time collaborative canvas', domain: 'rspace.online' }, { id: 'notes', name: 'rNotes', badge: 'rN', color: 'bg-amber-300', emoji: 'πŸ“', description: 'Group note-taking & knowledge capture', domain: 'rnotes.online' }, { id: 'pubs', name: 'rPubs', badge: 'rP', color: 'bg-rose-300', emoji: 'πŸ“–', description: 'Collaborative publishing platform', domain: 'rpubs.online' }, + { id: 'tube', name: 'rTube', badge: 'rTu', color: 'bg-pink-300', emoji: '🎬', description: 'Community video platform', domain: 'rtube.online' }, + { id: 'swag', name: 'rSwag', badge: 'rSw', color: 'bg-red-200', emoji: 'πŸ‘•', description: 'Community merch & swag store', domain: 'rswag.online' }, // Planning { id: 'cal', name: 'rCal', badge: 'rC', color: 'bg-sky-300', emoji: 'πŸ“…', description: 'Collaborative scheduling & events', domain: 'rcal.online' }, { id: 'trips', name: 'rTrips', badge: 'rT', color: 'bg-emerald-300', emoji: '✈️', description: 'Group travel planning in real time', domain: 'rtrips.online' }, @@ -34,13 +36,12 @@ const MODULES: AppModule[] = [ { id: 'wallet', name: 'rWallet', badge: 'rW', color: 'bg-yellow-300', emoji: 'πŸ’°', description: 'Multi-chain crypto wallet', domain: 'rwallet.online' }, { id: 'cart', name: 'rCart', badge: 'rCt', color: 'bg-orange-300', emoji: 'πŸ›’', description: 'Group commerce & shared shopping', domain: 'rcart.online' }, { id: 'auctions', name: 'rAuctions', badge: 'rA', color: 'bg-red-300', emoji: 'πŸ”¨', description: 'Live auction platform', domain: 'rauctions.online' }, - { id: 'swag', name: 'rSwag', badge: 'rSw', color: 'bg-red-200', emoji: 'πŸ‘•', description: 'Community merch & swag store', domain: 'rswag.online' }, - // Social & Media - { id: 'photos', name: 'rPhotos', badge: 'rPh', color: 'bg-pink-200', emoji: 'πŸ“Έ', description: 'Shared community photo albums', domain: 'rphotos.online' }, - { id: 'tube', name: 'rTube', badge: 'rTu', color: 'bg-pink-300', emoji: '🎬', description: 'Group video platform', domain: 'rtube.online' }, + // Sharing + { id: 'photos', name: 'rPhotos', badge: 'rPh', color: 'bg-pink-200', emoji: 'πŸ“Έ', description: 'Community photo commons', domain: 'rphotos.online' }, { id: 'network', name: 'rNetwork', badge: 'rNe', color: 'bg-blue-300', emoji: 'πŸ•ΈοΈ', description: 'Community network & social graph', domain: 'rnetwork.online' }, - { id: 'socials', name: 'rSocials', badge: 'rSo', color: 'bg-sky-200', emoji: 'πŸ“’', description: 'Social media management', domain: 'rsocials.online' }, { id: 'files', name: 'rFiles', badge: 'rFi', color: 'bg-cyan-300', emoji: 'πŸ“', description: 'Collaborative file storage', domain: 'rfiles.online' }, + { id: 'socials', name: 'rSocials', badge: 'rSo', color: 'bg-sky-200', emoji: 'πŸ“’', description: 'Social media management', domain: 'rsocials.online' }, + // Observing { id: 'data', name: 'rData', badge: 'rD', color: 'bg-purple-300', emoji: 'πŸ“Š', description: 'Analytics & insights dashboard', domain: 'rdata.online' }, // Work & Productivity { id: 'work', name: 'rWork', badge: 'rWo', color: 'bg-slate-300', emoji: 'πŸ“‹', description: 'Project & task management', domain: 'rwork.online' }, @@ -53,6 +54,8 @@ const MODULE_CATEGORIES: Record = { space: 'Creating', notes: 'Creating', pubs: 'Creating', + tube: 'Creating', + swag: 'Creating', cal: 'Planning', trips: 'Planning', maps: 'Planning', @@ -66,13 +69,11 @@ const MODULE_CATEGORIES: Record = { wallet: 'Funding & Commerce', cart: 'Funding & Commerce', auctions: 'Funding & Commerce', - swag: 'Funding & Commerce', - photos: 'Social & Media', - tube: 'Social & Media', - network: 'Social & Media', - socials: 'Social & Media', - files: 'Social & Media', - data: 'Social & Media', + photos: 'Sharing', + network: 'Sharing', + files: 'Sharing', + socials: 'Sharing', + data: 'Observing', work: 'Work & Productivity', ids: 'Identity & Infrastructure', stack: 'Identity & Infrastructure', @@ -84,7 +85,8 @@ const CATEGORY_ORDER = [ 'Communicating', 'Deciding', 'Funding & Commerce', - 'Social & Media', + 'Sharing', + 'Observing', 'Work & Productivity', 'Identity & Infrastructure', ]; diff --git a/src/components/EcosystemFooter.tsx b/src/components/EcosystemFooter.tsx index ac513c6..4228ed1 100644 --- a/src/components/EcosystemFooter.tsx +++ b/src/components/EcosystemFooter.tsx @@ -1,30 +1,39 @@ 'use client'; const FOOTER_LINKS = [ + // Creating { name: 'rSpace', href: 'https://rspace.online' }, { name: 'rNotes', href: 'https://rnotes.online' }, { name: 'rPubs', href: 'https://rpubs.online' }, + { name: 'rTube', href: 'https://rtube.online' }, + { name: 'rSwag', href: 'https://rswag.online' }, + // Planning { name: 'rCal', href: 'https://rcal.online' }, { name: 'rTrips', href: 'https://rtrips.online' }, { name: 'rMaps', href: 'https://rmaps.online' }, + // Communicating { name: 'rChats', href: 'https://rchats.online' }, { name: 'rInbox', href: 'https://rinbox.online' }, { name: 'rMail', href: 'https://rmail.online' }, { name: 'rForum', href: 'https://rforum.online' }, + // Deciding { name: 'rChoices', href: 'https://rchoices.online' }, { name: 'rVote', href: 'https://rvote.online' }, + // Funding & Commerce { name: 'rFunds', href: 'https://rfunds.online' }, { name: 'rWallet', href: 'https://rwallet.online' }, { name: 'rCart', href: 'https://rcart.online' }, { name: 'rAuctions', href: 'https://rauctions.online' }, - { name: 'rSwag', href: 'https://rswag.online' }, + // Sharing { name: 'rPhotos', href: 'https://rphotos.online' }, - { name: 'rTube', href: 'https://rtube.online' }, { name: 'rNetwork', href: 'https://rnetwork.online' }, - { name: 'rSocials', href: 'https://rsocials.online' }, { name: 'rFiles', href: 'https://rfiles.online' }, + { name: 'rSocials', href: 'https://rsocials.online' }, + // Observing { name: 'rData', href: 'https://rdata.online' }, + // Work & Productivity { name: 'rWork', href: 'https://rwork.online' }, + // Identity & Infrastructure { name: 'rIDs', href: 'https://ridentity.online' }, { name: 'rStack', href: 'https://rstack.online' }, ]; diff --git a/src/components/Header.tsx b/src/components/Header.tsx index 0d4599d..bde49f5 100644 --- a/src/components/Header.tsx +++ b/src/components/Header.tsx @@ -1,7 +1,9 @@ 'use client'; +import Link from 'next/link'; import { AppSwitcher } from './AppSwitcher'; import { SpaceSwitcher } from './SpaceSwitcher'; +import { SearchBar } from './SearchBar'; import { UserMenu } from './UserMenu'; export interface BreadcrumbItem { @@ -22,7 +24,7 @@ interface HeaderProps { export function Header({ current = 'notes', breadcrumbs, actions, maxWidth = 'max-w-6xl' }: HeaderProps) { return ( -
diff --git a/src/components/UserMenu.tsx b/src/components/UserMenu.tsx index e891244..b6e87f0 100644 --- a/src/components/UserMenu.tsx +++ b/src/components/UserMenu.tsx @@ -47,7 +47,7 @@ export function UserMenu() { href="https://auth.ridentity.online" className="px-3 py-1.5 text-sm bg-cyan-500 hover:bg-cyan-400 text-black font-medium rounded-lg transition-colors no-underline" > - Sign In + πŸ”‘ Sign In ); } @@ -63,7 +63,7 @@ export function UserMenu() {
{(user.username || 'U')[0].toUpperCase()}
- {displayName} + πŸ” {displayName}