MCPcopy Index your code
hub / github.com/callumalpass/tasknotes / renderTaskModalProjectsList

Function renderTaskModalProjectsList

src/modals/taskModalProjects.ts:120–186  ·  view source on GitHub ↗
({
	app,
	listEl,
	items,
	sourcePath,
	translate,
	onRemove,
}: RenderTaskModalProjectsListOptions)

Source from the content-addressed store, hash-verified

118}
119
120export function renderTaskModalProjectsList({
121 app,
122 listEl,
123 items,
124 sourcePath,
125 translate,
126 onRemove,
127}: RenderTaskModalProjectsListOptions): void {
128 if (!listEl) {
129 return;
130 }
131
132 listEl.empty();
133 if (items.length === 0) {
134 return;
135 }
136
137 const linkServices: LinkServices = {
138 metadataCache: app.metadataCache,
139 workspace: app.workspace,
140 };
141
142 for (const item of items) {
143 const projectItem = listEl.createDiv({ cls: "task-project-item" });
144
145 if (item.unresolved) {
146 projectItem.addClass("task-project-item--unresolved");
147 }
148
149 const infoEl = projectItem.createDiv({ cls: "task-project-info" });
150 const nameEl = infoEl.createDiv({ cls: "task-project-name clickable-project" });
151
152 if (item.file) {
153 const projectAsWikilink = generateLinkWithDisplay(
154 app,
155 item.file,
156 sourcePath,
157 item.file.name
158 );
159 renderProjectLinksWithoutPrefix(nameEl, [projectAsWikilink], linkServices);
160
161 if (item.file.path !== item.file.name) {
162 infoEl.createDiv({ cls: "task-project-path", text: item.file.path });
163 }
164 } else {
165 nameEl.textContent = item.name;
166 setTooltip(
167 nameEl,
168 translate("contextMenus.task.dependencies.notices.unresolved", {
169 name: item.name,
170 }),
171 { placement: "top" }
172 );
173 }
174
175 const removeBtn = projectItem.createEl("button", {
176 cls: "task-project-remove",
177 text: "×",

Callers 2

renderProjectsListFunction · 0.90

Calls 5

generateLinkWithDisplayFunction · 0.90
setTooltipFunction · 0.90
addClassMethod · 0.65
translateFunction · 0.50

Tested by

no test coverage detected