Skip to content

Commit d5d85a7

Browse files
committed
refactor(loader): Extract tailSpin SVG component
Extract the SVG generator logic for the `tailSpin` loader into a dedicated, reusable component. Create `tailSpin` component (`src/components/tailSpin.js`): - Export `createTailSpinSvg` helper function - Generate unique gradient IDs dynamically to prevent SVG gradient collisions across multiple loader instances - Explicitly set function `name` property on exported SVG creator Refactor loader dialog (`src/dialogs/loader.js`): - Import `createTailSpinSvg` from component path - Remove redundant local `createTailSpinSvg` implementation and SVG gradient tracking logic (AI generated commit message)
1 parent b143d7e commit d5d85a7

2 files changed

Lines changed: 16 additions & 8 deletions

File tree

‎src/components/tailSpin.js‎

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import tailSpinSvg from "res/tail-spin.svg?raw";
2+
3+
const tailSpinGradientId = "tail-spin-gradient";
4+
let tailSpinSvgId = 0;
5+
6+
const createTailSpinSvg = () => {
7+
const gradientId = `${tailSpinGradientId}-${tailSpinSvgId++}`;
8+
return tailSpinSvg.replaceAll(tailSpinGradientId, gradientId);
9+
};
10+
11+
Object.defineProperty(createTailSpinSvg, "name", {
12+
value: "createTailSpinSvg",
13+
});
14+
15+
export default createTailSpinSvg;

‎src/dialogs/loader.js‎

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,14 @@
1+
import createTailSpinSvg from "components/tailSpin.js";
12
import DOMPurify from "dompurify";
23
import Ref from "html-tag-js/ref";
34
import actionStack from "lib/actionStack";
45
import restoreTheme from "lib/restoreTheme";
5-
import tailSpinSvg from "res/tail-spin.svg?raw";
66

77
let loaderIsImmortal = false;
88
let onCancelCallback = null;
99
let $currentDialog = null;
1010
let $currentMask = null;
1111
const titleLoaderId = "__title-loader";
12-
const tailSpinGradientId = "tail-spin-gradient";
13-
let tailSpinSvgId = 0;
14-
15-
function createTailSpinSvg() {
16-
const gradientId = `${tailSpinGradientId}-${tailSpinSvgId++}`;
17-
return tailSpinSvg.split(tailSpinGradientId).join(gradientId);
18-
}
1912

2013
/**
2114
* @typedef {object} LoaderOptions

0 commit comments

Comments
 (0)