MCPcopy
hub / github.com/arfct/itty-bitty / render

Function render

docs/render/contact.js:100–212  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

98}
99
100function render() {
101 document.head.appendChild(el("base", {target:"_top"}))
102 document.head.appendChild(el("meta", {name:"viewport", content:"width=device-width, initial-scale=1.0"}))
103 let vcard = params.body.match(/BEGIN:VCARD/);
104 if (vcard) {
105 let data = parse(params.body)
106 console.log(data, params.body.split("\n"));
107 document.body.appendChild(
108 el("div.contact", {},
109 el("h1.header", {}, data.fn),
110 data.email.forEach(email => el("div.email", {}, email.value.pop())),
111 data.tel.forEach(tel => el("div.tel", {}, tel.value.pop())),
112 // array.map(line => el("div.line", {}, line)),
113 )
114 )
115 } else if (params.body.match(/MECARD:/)){
116 document.body.appendChild(el("#arc-theme"));
117 let queryString = params.body.substring(7);
118 queryString = queryString.split(";").map(line => line.replace(/\:/, "=")).join("&");
119
120 let searchParams = new URLSearchParams(queryString);
121
122 let headingElements = [];
123 let contentElements = [];
124 let imgElement = undefined;
125
126 searchParams.forEach((value, key) => {
127 key = key.toLowerCase();
128 value = decodeURIComponent(value);
129 console.log(value, key);
130 if (key == 'color') {
131 document.body.style.backgroundColor = value;
132 } else if (key == 'n') {
133 value = value.split(",").reverse().join(" ");
134 headingElements.push(el("h1", {}, value))
135 } else if (key == 'img') {
136 imgElement = (el("img.profile", {src:value}));
137 } else {
138 let href = undefined;
139 if (key == "email") {
140 href = "mailto:" + value;
141 }
142 if (key == "url") {
143 href = value;
144 value = value.replace(/https?:\/\/(www.)?/, "")
145 }
146
147 if (key == "bday") {
148 value = formatBday(value)
149 }
150
151 if (key == "tel") {
152 let actionrow = el("div.row." + key, {target:"top", href},
153 el("a.icon", {href:"facetime:" + value}, el.trust(fieldIcons["vid"])),
154 el("a.icon", {href:"tel:" + value}, el.trust(fieldIcons["call"])),
155
156 el("a.icon", {href:"add:" + value}, el.trust(fieldIcons["add"])),
157 )

Callers 1

contact.jsFile · 0.70

Calls 3

formatBdayFunction · 0.85
parseFunction · 0.70
elFunction · 0.50

Tested by

no test coverage detected