p. ex.
api.addCommunitySectionLink({
name: "intersection-navigator",
route:"tags.intersection",
title: I18n.t("tag_intersection_navigator.link.title"),
text: I18n.t("tag_intersection_navigator.link.text")
})
… irá falhar porque essa rota requer um tag_id.
Eu tentei adicionar:
params: { tag_id: siteSettings.discourse_tag_intersection_navigator_all_word },
model: { tag_id: siteSettings.discourse_tag_intersection_navigator_all_word },
… mas eu suspeito fortemente que isto não seja processado como necessário pela api …
4 curtidas
Especificamente, acho que está aqui: discourse/app/assets/javascripts/discourse/app/lib/sidebar/custom-community-section-links.js at d0c3f3b8fe6905e7e33ae4944cdf44c11ccc0df6 · discourse/discourse · GitHub
se adicionarmos isso, deve funcionar:
get models() {
return args.models;
}
3 curtidas
Ah, e como existe uma condição typeof args === "function", você poderia fazer algo assim imediatamente:
api.addCommunitySectionLink((Base) =">
class CustomLink extends Base {
get name() {
return "intersection-navigator";
}
get route() {
return "tag.show";
}
get models() {
return ["tagid"];
}
get title() {
return I18n.t("tag_intersection_navigator.link.title");
}
get text() {
return I18n.t("tag_intersection_navigator.link.text");
}
}
);
1 curtida
sim, é o que já estou fazendo… mas tem algo engraçado mais adiante no processo
1 curtida
Por alguma razão, isso não está funcionando e estou recebendo uma reclamação sobre a falta de postStream ao clicar:
api.addCommunitySectionLink((baseSectionLink) => {
return class CustomSectionLink extends baseSectionLink {
get name() {
return "intersection-navigator";
}
get route() {
return "tags.intersection";
}
get models() {
return [{tag_id: siteSettings.discourse_tag_intersection_navigator_all_word}];
}
get title() {
return I18n.t("tag_intersection_navigator.link.title")
}
get text() {
return I18n.t("tag_intersection_navigator.link.text");
}
};
});
É quase como se você precisasse incluir o modelo para a rota atual, o que é estranho!
1 curtida
qual é a saída dessa configuração? parece funcionar bem quando eu faço manualmente:
get models() {
return ["featured", "tv"];
}
2 curtidas
Sim, isso funciona, isso é realmente útil, obrigado!
A configuração é apenas uma string. Acho que estava pensando demais.
O nome “models” para os parâmetros da consulta não é 100% intuitivo, no entanto?
Seu PR deixará isso muito mais organizado, obrigado!
2 curtidas
sim, também não ficou claro para mim no início, mas é porque no final ele usa o componente LinkTo do Ember, que espera um argumento de modelo…
1 curtida
system
(system)
Fechado
11
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.