Skip to content

Commit

Permalink
perf(web): memoize icon components
Browse files Browse the repository at this point in the history
  • Loading branch information
paularmstrong authored and blakeblackshear committed Feb 20, 2021
1 parent 3e25061 commit 19bd5ac
Show file tree
Hide file tree
Showing 10 changed files with 37 additions and 10 deletions.
2 changes: 1 addition & 1 deletion web/src/Events.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -259,7 +259,7 @@ function Filters({ onChange, searchParams }) {
}, [data]);

return (
<div className="flex space-x-8">
<div className="flex space-x-4">
<Filter onChange={onChange} options={cameras} paramName="camera" searchParams={searchParams} />
<Filter onChange={onChange} options={zones} paramName="zone" searchParams={searchParams} />
<Filter onChange={onChange} options={labels} paramName="label" searchParams={searchParams} />
Expand Down
5 changes: 4 additions & 1 deletion web/src/icons/ArrowDropdown.jsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
import { h } from 'preact';
import { memo } from 'preact/compat';

export default function ArrowDropdown() {
export function ArrowDropdown() {
return (
<svg className="fill-current" viewBox="0 0 24 24">
<path d="M0 0h24v24H0z" fill="none" />
<path d="M7 10l5 5 5-5z" />
</svg>
);
}

export default memo(ArrowDropdown);
5 changes: 4 additions & 1 deletion web/src/icons/ArrowDropup.jsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
import { h } from 'preact';
import { memo } from 'preact/compat';

export default function ArrowDropup() {
export function ArrowDropup() {
return (
<svg className="fill-current" viewBox="0 0 24 24">
<path d="M0 0h24v24H0z" fill="none" />
<path d="M7 14l5-5 5 5z" />
</svg>
);
}

export default memo(ArrowDropup);
5 changes: 4 additions & 1 deletion web/src/icons/AutoAwesome.jsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
import { h } from 'preact';
import { memo } from 'preact/compat';

export default function ArrowDropdown() {
export function AutoAwesome() {
return (
<svg className="fill-current" viewBox="0 0 24 24">
<path d="M0 0h24v24H0z" fill="none" />
<path d="M19 9l1.25-2.75L23 5l-2.75-1.25L19 1l-1.25 2.75L15 5l2.75 1.25L19 9zm-7.5.5L9 4 6.5 9.5 1 12l5.5 2.5L9 20l2.5-5.5L17 12l-5.5-2.5zM19 15l-1.25 2.75L15 19l2.75 1.25L19 23l1.25-2.75L23 19l-2.75-1.25L19 15z" />
</svg>
);
}

export default memo(AutoAwesome);
5 changes: 4 additions & 1 deletion web/src/icons/DarkMode.jsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
import { h } from 'preact';
import { memo } from 'preact/compat';

export default function DarkMode() {
export function DarkMode() {
return (
<svg className="fill-current" viewBox="0 0 24 24">
<rect fill="none" height="24" width="24" />
<path d="M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36c-0.98,1.37-2.58,2.26-4.4,2.26 c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z" />
</svg>
);
}

export default memo(DarkMode);
5 changes: 4 additions & 1 deletion web/src/icons/LightMode.jsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
import { h } from 'preact';
import { memo } from 'preact/compat';

export default function ArrowDropdown() {
export function LightMode() {
return (
<svg className="fill-current" viewBox="0 0 24 24">
<rect fill="none" height="24" width="24" />
<path d="M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0 c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2 c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1 C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06 c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41 l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41 c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36 c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z" />
</svg>
);
}

export default memo(LightMode);
5 changes: 4 additions & 1 deletion web/src/icons/Menu.jsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
import { h } from 'preact';
import { memo } from 'preact/compat';

export default function Menu() {
export function Menu() {
return (
<svg className="fill-current" viewBox="0 0 24 24">
<path d="M0 0h24v24H0z" fill="none" />
<path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z" />
</svg>
);
}

export default memo(Menu);
5 changes: 4 additions & 1 deletion web/src/icons/MenuOpen.jsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
import { h } from 'preact';
import { memo } from 'preact/compat';

export default function MenuOpen() {
export function MenuOpen() {
return (
<svg className="fill-current" viewBox="0 0 24 24">
<path d="M0 0h24v24H0V0z" fill="none" />
<path d="M3 18h13v-2H3v2zm0-5h10v-2H3v2zm0-7v2h13V6H3zm18 9.59L17.42 12 21 8.41 19.59 7l-5 5 5 5L21 15.59z" />
</svg>
);
}

export default memo(MenuOpen);
5 changes: 4 additions & 1 deletion web/src/icons/More.jsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
import { h } from 'preact';
import { memo } from 'preact/compat';

export default function More() {
export function More() {
return (
<svg className="fill-current" viewBox="0 0 24 24">
<path d="M0 0h24v24H0z" fill="none" />
<path d="M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z" />
</svg>
);
}

export default memo(More);
5 changes: 4 additions & 1 deletion web/src/icons/Settings.jsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { h } from 'preact';
import { memo } from 'preact/compat';

export default function DarkMode() {
export function Settings() {
return (
<svg className="fill-current" viewBox="0 0 24 24">
<g>
Expand All @@ -10,3 +11,5 @@ export default function DarkMode() {
</svg>
);
}

export default memo(Settings);

0 comments on commit 19bd5ac

Please sign in to comment.