MCPcopy Create free account
hub / github.com/emwalker/digraph / Topic

Function Topic

client/src/components/ui/Topic/index.tsx:50–84  ·  view source on GitHub ↗
(props: Props)

Source from the content-addressed store, hash-verified

48`
49
50export default function Topic(props: Props) {
51 const topic = useFragment(topicFragment, props.topic)
52 const viewer = useFragment(viewerFragment, props.viewer)
53 const [formIsOpen, setFormIsOpen] = useState(false)
54
55 const toggleForm = useCallback(() => setFormIsOpen(!formIsOpen), [setFormIsOpen, formIsOpen])
56 const showEditButton = !topic.loading && topic.viewerCanUpdate
57 const displayParentTopics = liftNodes<ParentTopicType>(topic.displayParentTopics)
58 const repoColors = (topic.repoTopics || []) .map((repoTopic) => repoTopic.displayColor as Color)
59 const canEdit = !!(topic.viewerCanUpdate && viewer.selectedRepoId)
60
61 return (
62 <Item
63 canEdit={canEdit}
64 className="topicTopicRow Box-row--topic"
65 formIsOpen={formIsOpen}
66 newlyAdded={topic.newlyAdded}
67 repoColors={repoColors}
68 showEditButton={showEditButton}
69 showLink={false}
70 showRepoOwnership={topic.showRepoOwnership}
71 title={topic.displayName}
72 toggleForm={toggleForm}
73 topics={displayParentTopics}
74 url={topicPath(topic.id)}
75 >
76 {formIsOpen && viewer.id && (
77 <EditTopicLoader
78 topicId={topic.id}
79 viewerId={viewer.id}
80 />
81 )}
82 </Item>
83 )
84}

Callers

nothing calls this directly

Calls 2

liftNodesFunction · 0.90
topicPathFunction · 0.90

Tested by

no test coverage detected