diff --git a/package.json b/package.json index 0b4e43b..f5b5d2c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@jill64/svelte-pagination", - "version": "0.1.0", + "version": "0.1.1", "type": "module", "description": "Pagination component for Svelte", "main": "dist/index.js", diff --git a/src/lib/Paginate.svelte b/src/lib/Paginate.svelte index 26a86c7..b163e15 100644 --- a/src/lib/Paginate.svelte +++ b/src/lib/Paginate.svelte @@ -27,14 +27,24 @@ $: remainLeft = clamp(current - 1, 0, last - 1) $: remainRight = clamp(last - current, 0, last - 1) + $: baseDepth = base.match(/\//g)?.length ?? 0 + $: pathArray = $page.url.pathname.split('/') + $: replaceIndex = routeId + ? routeId.split('/').indexOf(slug) + baseDepth + : null + $: makeHref = (target: number) => { - if (!routeId) { + if (!replaceIndex) { return '' } - const pathname = routeId.replace(slug, target.toString()) + const pathname = [ + ...pathArray.slice(0, replaceIndex), + target.toString(), + ...pathArray.slice(replaceIndex + 1) + ].join('/') - return `${base}${pathname}${$page.url.search}${$page.url.hash}` + return `${pathname}${$page.url.search}${$page.url.hash}` }