Skip to content

Commit f6a1570

Browse files
committed
intialPage prop
Examples fixes
1 parent 425d1a4 commit f6a1570

8 files changed

+159
-22
lines changed

src/components/PageView.svelte

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,13 @@
1010
export let ariaLabel = "";
1111
export let page = 0;
1212
13+
let defaults = {
14+
pageClassName,
15+
pageLinkClassName,
16+
activeClassName,
17+
activeLinkClassName
18+
};
19+
1320
$: ariaLabel =
1421
ariaLabel ||
1522
"Page " + page + (extraAriaContext ? " " + extraAriaContext : "");
@@ -34,6 +41,13 @@
3441
pageLinkClassName = activeLinkClassName;
3542
}
3643
}
44+
45+
$: if (!selected) {
46+
pageLinkClassName = defaults.pageLinkClassName;
47+
pageClassName = defaults.pageClassName;
48+
activeClassName = defaults.activeClassName;
49+
activeLinkClassName = defaults.activeLinkClassName;
50+
}
3751
</script>
3852

3953
<style>

src/components/Pagination.svelte

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
export let nextLabel = "Next";
1010
export let breakLabel = "...";
1111
export let hrefBuilder;
12-
export let onPageChange;
1312
export let initialPage;
1413
export let forcePage;
1514
export let disableInitialCallback = false;
@@ -27,6 +26,7 @@
2726
export let breakLinkClassName;
2827
export let extraAriaContext;
2928
export let ariaLabelBuilder;
29+
export let initialPageIndex = 1;
3030
3131
const dispatch = createEventDispatcher();
3232
@@ -37,7 +37,7 @@
3737
} else if (forcePage) {
3838
initialSelected = forcePage;
3939
} else {
40-
initialSelected = 0;
40+
initialSelected = 1;
4141
}
4242
4343
let state = {
@@ -62,7 +62,6 @@
6262
}
6363
6464
function handlePageSelected(selected, event) {
65-
debugger;
6665
event.preventDefault ? event.preventDefault() : (event.returnValue = false);
6766
if (state.selected === selected) return;
6867
@@ -104,7 +103,7 @@
104103
if (
105104
hrefBuilder &&
106105
pageIndex !== state.selected &&
107-
pageIndex >= 0 &&
106+
pageIndex >= initialPageIndex &&
108107
pageIndex < pageCount
109108
) {
110109
return hrefBuilder(pageIndex + 1);
@@ -150,20 +149,22 @@
150149
let nextAriaDisabled = "";
151150
152151
$: previousClasses =
153-
previousClassName + (state.selected === 0 ? ` ${disabledClassName}` : "");
152+
previousClassName +
153+
(state.selected === initialPageIndex ? ` ${disabledClassName}` : "");
154154
$: nextClasses =
155155
nextClassName +
156156
(state.selected === pageCount - 1 ? ` ${disabledClassName}` : "");
157157
158-
$: previousAriaDisabled = state.selected === 0 ? "true" : "false";
158+
$: previousAriaDisabled =
159+
state.selected === initialPageIndex ? "true" : "false";
159160
$: nextAriaDisabled = state.selected === pageCount - 1 ? "true" : "false";
160161
161162
$: {
162163
const items = [];
163164
const { selected } = state;
164165
165166
if (pageCount <= pageRangeDisplayed) {
166-
for (let index = 0; index < pageCount; index++) {
167+
for (let index = initialPageIndex; index < pageCount; index++) {
167168
items.push({
168169
itemIndex: index,
169170
type: "PageView"
@@ -189,8 +190,8 @@
189190
let page;
190191
let breakView;
191192
192-
for (index = 0; index < pageCount; index++) {
193-
page = index + 1;
193+
for (index = initialPageIndex; index < pageCount; index++) {
194+
page = index;
194195
195196
// If the page index is lower than the margin defined,
196197
// the page has to be displayed on the left side of
@@ -282,7 +283,6 @@
282283

283284
{#each state.items as { itemIndex, type }, i}
284285
{#if type === 'PageView'}
285-
{@debug itemIndex}
286286
<svelte:component
287287
this={PageView}
288288
key={itemIndex}
@@ -295,7 +295,7 @@
295295
{extraAriaContext}
296296
href={hrefBuilderMain(itemIndex)}
297297
ariaLabel={ariaLabelBuilderMain(itemIndex)}
298-
page={itemIndex + 1} />
298+
page={itemIndex} />
299299
{:else}
300300
<svelte:component
301301
this={BreakView}

stories/1-basic.stories.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ export default {
1111
},
1212
};
1313

14-
export const BasicDefaultPagination = () => ({
14+
export const BasicDefaultRawPagination = () => ({
1515
Component: BasicDefaultView,
1616
props: {},
1717
});

stories/2-basic.styles.stories.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import { action } from "@storybook/addon-actions";
2+
3+
import BasicDefaultView from "./views/BasicDefaultStyledView.svelte";
4+
5+
import intro from "./../README.md";
6+
7+
export default {
8+
title: "Examples",
9+
parameters: {
10+
notes: { Introduction: intro },
11+
},
12+
};
13+
14+
export const BasicDefaultStylesPagination = () => ({
15+
Component: BasicDefaultView,
16+
props: {},
17+
});
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import { action } from "@storybook/addon-actions";
2+
3+
import PaginationView from "./views/FullPaginationExample.svelte";
4+
5+
import intro from "./../README.md";
6+
7+
export default {
8+
title: "Examples",
9+
parameters: {
10+
notes: { Introduction: intro },
11+
},
12+
};
13+
14+
export const FullExamplePagination = () => ({
15+
Component: PaginationView,
16+
props: {},
17+
});
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
<script>
2+
import Pagination from "./../../src";
3+
4+
let checkedValue = true;
5+
6+
function handleChange(e) {
7+
const { checked } = e.detail;
8+
checkedValue = checked;
9+
}
10+
</script>
11+
12+
<style>
13+
/*
14+
You can add following styles in a global stylesheets
15+
*/
16+
:global(ul.pagination) {
17+
background: aliceblue;
18+
padding: 10px;
19+
}
20+
21+
:global(ul.pagination li) {
22+
padding: 5px;
23+
}
24+
25+
:global(ul.pagination li.active) {
26+
border: 1px solid;
27+
}
28+
</style>
29+
30+
<h1>Simple usage</h1>
31+
<Pagination
32+
previousLabel={'previous'}
33+
nextLabel={'next'}
34+
breakLabel={'...'}
35+
breakClassName={'break-me'}
36+
pageCount={100}
37+
marginPagesDisplayed={2}
38+
pageRangeDisplayed={5}
39+
onPageChange={handleChange}
40+
containerClassName={'pagination'}
41+
subContainerClassName={'pages'}
42+
activeClassName={'active'} />

stories/views/BasicDefaultView.svelte

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<script>
2-
import Switch from "./../../src";
2+
import Pagination from "./../../src";
33
44
let checkedValue = true;
55
@@ -10,16 +10,9 @@
1010
</script>
1111

1212
<h1>Simple usage</h1>
13-
<Switch
14-
previousLabel={'previous'}
15-
nextLabel={'next'}
16-
breakLabel={'...'}
17-
breakClassName={'break-me'}
13+
<Pagination
1814
pageCount={100}
1915
marginPagesDisplayed={2}
2016
pageRangeDisplayed={5}
21-
onPageChange={handleChange}
22-
containerClassName={'pagination'}
23-
subContainerClassName={'pages pagination'}
24-
activeClassName={'active'} />
17+
onPageChange={handleChange} />
2518
<br />
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
<script>
2+
import Pagination from "./../../src";
3+
4+
let selectedValue = 1;
5+
6+
function handleChange(e) {
7+
debugger;
8+
const { selected } = e.detail;
9+
selectedValue = selected;
10+
}
11+
</script>
12+
13+
<style>
14+
/*
15+
You can add following styles in a global stylesheets
16+
*/
17+
:global(ul.pagination) {
18+
background: aliceblue;
19+
padding: 10px;
20+
}
21+
22+
:global(ul.pagination li) {
23+
padding: 5px;
24+
}
25+
26+
:global(ul.pagination li.active) {
27+
border: 1px solid;
28+
}
29+
30+
.page {
31+
height: 300px;
32+
width: 300px;
33+
background-color: azure;
34+
border: 1px;
35+
text-align: center;
36+
}
37+
</style>
38+
39+
<h1>Full Pagination Example</h1>
40+
<div class="page">
41+
<h3>You are in Page No. {selectedValue}</h3>
42+
</div>
43+
<Pagination
44+
previousLabel={'previous'}
45+
nextLabel={'next'}
46+
breakLabel={'...'}
47+
breakClassName={'break-me'}
48+
pageCount={100}
49+
marginPagesDisplayed={2}
50+
pageRangeDisplayed={5}
51+
on:change={handleChange}
52+
containerClassName={'pagination'}
53+
subContainerClassName={'pages'}
54+
activeClassName={'active'} />

0 commit comments

Comments
 (0)