Sign in
Join now
scn-chat
sharedcomputer.network
/
Star
Starred
Star
Something went wrong. Try again.
Fork
0
Eye filled
Watch
Watching
Watch
ATProto-based AI Assistant Chat interface.
Star
Starred
Star
Something went wrong. Try again.
Fork
Eye filled
Watch
Watching
Watch
Overview
Overview
Issues
Issues
1
1
Pulls
Pulls
Pipelines
Pipelines
scn-chat
/
apps
/
web
/
src
/
features
/
conversation
/
components
6 files
at
web-rebuild
pouriade.com
·
Have components return early rather than return a ternary when what they render depends on a condition. The loading guards in the preferences, plugin settings, admin settings, and access pages show their error or nothing with two plain returns, ReplyStream, Text, Status, and the Markdown image renderer return early, and ConversationView picks each message's actions in an actionsFor helper in place of a nested ternary. CLAUDE.md states the rule.
·
1mo ago
d0ab79af
BusyBanner.tsx
Group the web app's code by feature. Each folder in src/features (auth, chat-list, conversation, sharing, models, settings, admin) holds that feature's pages, layouts included, components, hooks, lib, and queries, and the routes stay thin, rendering a feature's page. Page files are named after the component they export. The query factories split from src/queries.ts into each feature's queries.ts, leaving staleTime in src/shared, which also holds the API client, errors, search params, and the schema forms that admin and settings share. inheritedModel moves from the models module to the conversation's branch module, so models no longer depends on the conversation. Tests mirror the new tree, and the specs, the architecture doc, and CLAUDE.md name the new paths.
1mo ago
Composer.tsx
Have React components take props: Props, declared as an interface, and read props.example rather than destructuring props in the signature. A component destructures only the values it builds other variables from, such as ModelSelect and EffortSelect passing the rest of their props to the select. Inline prop types became named interfaces, and CLAUDE.md states the rule.
1mo ago
ConversationHeader.tsx
Have React components take props: Props, declared as an interface, and read props.example rather than destructuring props in the signature. A component destructures only the values it builds other variables from, such as ModelSelect and EffortSelect passing the rest of their props to the select. Inline prop types became named interfaces, and CLAUDE.md states the rule.
1mo ago
ConversationView.tsx
Have components return early rather than return a ternary when what they render depends on a condition. The loading guards in the preferences, plugin settings, admin settings, and access pages show their error or nothing with two plain returns, ReplyStream, Text, Status, and the Markdown image renderer return early, and ConversationView picks each message's actions in an actionsFor helper in place of a nested ternary. CLAUDE.md states the rule.
1mo ago
MessageView.tsx
Have components return early rather than return a ternary when what they render depends on a condition. The loading guards in the preferences, plugin settings, admin settings, and access pages show their error or nothing with two plain returns, ReplyStream, Text, Status, and the Markdown image renderer return early, and ConversationView picks each message's actions in an actionsFor helper in place of a nested ternary. CLAUDE.md states the rule.
1mo ago
ReplyStream.tsx
Have components return early rather than return a ternary when what they render depends on a condition. The loading guards in the preferences, plugin settings, admin settings, and access pages show their error or nothing with two plain returns, ReplyStream, Text, Status, and the Markdown image renderer return early, and ConversationView picks each message's actions in an actionsFor helper in place of a nested ternary. CLAUDE.md states the rule.
1mo ago