Skip to content

Commit 4ed0392

Browse files
authored
Fix Axis reactivity with LayerChart 1.x and Svelte 5.34+ (#643)
* Update Svelte to 5.38.2 to reproduce issue #641 and update LayerCake * Add simle reproduction * fix(Axis): Fix reactivity issue with xRange/yRange in Svelte 5.34+. Fixes #641 * Remove issue example * Downgrade LayerCake back to 8.4.3 (fix svelte-check errors and update not needed at this time)
1 parent fde57ce commit 4ed0392

4 files changed

Lines changed: 70 additions & 57 deletions

File tree

.changeset/rude-gifts-type.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'layerchart': patch
3+
---
4+
5+
fix(Axis): Fix reactivity issue with xRange/yRange in Svelte 5.34+. Fixes #641

packages/layerchart/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@
6363
"rehype-slug": "^6.0.0",
6464
"shapefile": "^0.6.6",
6565
"solar-calculator": "^0.3.0",
66-
"svelte": "5.29.0",
66+
"svelte": "5.38.2",
6767
"svelte-check": "^4.2.0",
6868
"svelte-json-tree": "^2.2.0",
6969
"svelte-ux": "^1.0.5",
@@ -105,7 +105,7 @@
105105
"d3-tile": "^1.0.0",
106106
"d3-time": "^3.1.0",
107107
"date-fns": "^4.1.0",
108-
"layercake": "^8.4.3",
108+
"layercake": "8.4.3",
109109
"lodash-es": "^4.17.21"
110110
},
111111
"peerDependencies": {

packages/layerchart/src/lib/components/Axis.svelte

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -87,9 +87,6 @@
8787
tickLabel?: string;
8888
} = {};
8989
90-
$: [xRangeMin, xRangeMax] = extent<number>($xRange) as [number, number];
91-
$: [yRangeMin, yRangeMax] = extent<number>($yRange) as [number, number];
92-
9390
$: tickVals = Array.isArray(ticks)
9491
? ticks
9592
: typeof ticks === 'function'
@@ -102,7 +99,10 @@
10299
: _scale.domain()
103100
: _scale.ticks(ticks ?? (placement === 'left' || placement === 'right' ? 4 : undefined));
104101
105-
function getCoords(tick: any) {
102+
function getCoords(tick: any, xRange: [number, number], yRange: [number, number]) {
103+
const [xRangeMin, xRangeMax] = extent(xRange) as [number, number];
104+
const [yRangeMin, yRangeMax] = extent(yRange) as [number, number];
105+
106106
switch (placement) {
107107
case 'top':
108108
return {
@@ -257,7 +257,7 @@
257257
{/if}
258258

259259
{#each tickVals as tick, index (tick)}
260-
{@const tickCoords = getCoords(tick)}
260+
{@const tickCoords = getCoords(tick, $xRange, $yRange)}
261261
{@const [radialTickCoordsX, radialTickCoordsY] = pointRadial(tickCoords.x, tickCoords.y)}
262262
{@const [radialTickMarkCoordsX, radialTickMarkCoordsY] = pointRadial(
263263
tickCoords.x,

pnpm-lock.yaml

Lines changed: 58 additions & 50 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)