/* @component-map * App — Main container, tab navigation [app.jsx] * NewsFeed — Main feed of news tips sorted by recency [components/NewsFeed.jsx] * TipCard — Individual tip card with upvote [components/NewsFeed.jsx] * AddTipModal — Modal for submitting new tips [components/AddTipModal.jsx] * EmptyState — Empty state when no tips exist [components/NewsFeed.jsx] * @end-component-map */ // DEPLOY_CONFIG: {"triggers": [{"name": "tip_upvote_digest_threshold", "on": "collection.update", "collection": "tips", "actions": [{"type": "email", "to": "community_digest_recipients", "subject": "Trending tip: {{title}} reached 15+ upvotes", "body": "A tip in the community has reached 15 or more upvotes and is now ready for the digest.\n\nTitle: {{title}}\nAuthor: {{author_name}}\nUpvotes: {{upvote_count}}\nLink: {{url}}\n\nTip summary:\n{{summary}}\n\nPlease review and include this tip in the community digest."}]}], "cron": [{"name": "weekly_news_roundup_digest", "schedule": "0 9 * * 1", "action": "event", "config": {"event_type": "news_roundup.generate"}}]} import { useEffect } from 'react'; import { usePresence } from '@deplixo/sdk'; import { NewsFeed } from './components/NewsFeed.jsx'; import { AddTipModal } from './components/AddTipModal.jsx'; function ActiveMembersBar() { const { users, update } = usePresence({ status: 'online', view: 'feed', area: 'community' }); useEffect(() => { update({ status: 'online', view: 'feed', area: 'community', lastSeen: Date.now() }); }, [update]); return (
Neighborhood News Tips