summaryrefslogtreecommitdiff
path: root/apps/web/src/components/icons/index.ts
blob: 5731026a31c048dfeb91bf6738a092b394ae9004 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import plus16 from "./svgs/plus16.svg?raw";
import minus16 from "./svgs/minus16.svg?raw";

function makeIconFactory(source: string) {
  return (attrs?: object): SVGElement => {
    const parser = new DOMParser();
    const doc = parser.parseFromString(source, "image/svg+xml");
    const svg = doc.documentElement as unknown as SVGElement;

    if (attrs) {
      Object.entries(attrs).forEach(([k, v]) => svg.setAttribute(k, v));
    }

    return svg;
  };
}

export const plus16Icon = makeIconFactory(plus16);
export const minus16Icon = makeIconFactory(minus16);