MCPcopy Create free account
hub / github.com/hydro-dev/Hydro / tpl

Function tpl

packages/ui-default/utils/base.ts:39–58  ·  view source on GitHub ↗
(pieces: TemplateStringsArray | React.ReactNode, ...substitutions: Substitution[] | boolean[])

Source from the content-addressed store, hash-verified

37export function tpl<T extends boolean = false>(node: React.ReactNode, reactive?: T): T extends true ? HTMLDivElement : string;
38export function tpl(pieces: TemplateStringsArray, ...substitutions: Substitution[]): string;
39export function tpl(pieces: TemplateStringsArray | React.ReactNode, ...substitutions: Substitution[] | boolean[]) {
40 if (React.isValidElement(pieces)) {
41 if (substitutions[0]) {
42 const div = document.createElement('div');
43 ReactDOM.createRoot(div).render(pieces);
44 return div;
45 }
46 return DOMServer.renderToStaticMarkup(pieces);
47 }
48 let result = pieces[0];
49 for (let i = 0; i < substitutions.length; ++i) {
50 const subst = substitutions[i];
51 let substHtml: string;
52 if (subst && typeof subst === 'object' && subst.templateRaw) {
53 substHtml = subst.html;
54 } else substHtml = _.escape(String(subst));
55 result += substHtml + pieces[i + 1];
56 }
57 return result;
58}
59
60tpl.typoMsg = function (msg: string, raw = false) {
61 if (raw) return `<div class="typo"><p>${msg}</p></div>`;

Callers 15

uploadFilesFunction · 0.90
showDialogFunction · 0.90
historyDialogFunction · 0.90
index.tsFile · 0.90
constructorMethod · 0.90
runHighlightFunction · 0.90
constructorMethod · 0.90
buildBodyMethod · 0.90
getHitokotoFunction · 0.90
renderFunction · 0.90

Calls 2

StringInterface · 0.85
renderMethod · 0.45

Tested by

no test coverage detected