@rileybathurst/paddle 1.5.2 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@rileybathurst/paddle",
3
3
  "private": false,
4
- "version": "1.5.2",
4
+ "version": "1.6.0",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "dev": "vite",
@@ -3,14 +3,34 @@ import { Link } from "gatsby"
3
3
  import type { paddlePricingChartTypes } from "./types/paddle-pricing-chart-types";
4
4
 
5
5
  const LineBreaker = ({ text }: { text: string; }) => {
6
- // Split the text by hyphens and spaces, keeping the delimiters
7
- const parts = text.split(/([- ])/g);
6
+ const splitIndex = (() => {
7
+ const spaceIndexes = [];
8
+ for (let i = 0; i < text.length; i++) {
9
+ if (text[i] === " ") spaceIndexes.push(i);
10
+ }
11
+ if (spaceIndexes.length === 0) return -1;
12
+ let minDiff = Infinity;
13
+ let bestIndex = spaceIndexes[0];
14
+ for (const idx of spaceIndexes) {
15
+ const left = text.slice(0, idx).length;
16
+ const right = text.slice(idx + 1).length;
17
+ const diff = Math.abs(left - right);
18
+ if (diff < minDiff) {
19
+ minDiff = diff;
20
+ bestIndex = idx;
21
+ }
22
+ }
23
+ return bestIndex;
24
+ })();
25
+
26
+ const firstPart = text.slice(0, splitIndex);
27
+ const secondPart = text.slice(splitIndex + 1);
8
28
 
9
29
  return (
10
30
  <h4 className="title">
11
- {parts.map((part) =>
12
- part === '-' || part === ' ' ? <br key={part} /> : part
13
- )}
31
+ {firstPart}
32
+ <br />
33
+ {secondPart}
14
34
  </h4>
15
35
  );
16
36
  }
@@ -30,11 +50,18 @@ export const PaddlePricingChart = ({ rentalRates }: paddlePricingChartTypes) =>
30
50
 
31
51
  {rentalRates.nodes.map((rate) => (
32
52
  <div key={rate.id} className="column">
33
- <LineBreaker text={rate.item} />
34
- <p>${rate.oneHour}</p>
35
- <p>${rate.threeHour}</p>
36
- <p>${rate.fullDay}</p>
37
- <p>{rate.pedalAdd ? `+ $${rate.pedalAdd}` : null}</p>
53
+ {rate.retail ? (
54
+ <Link to={`/retail/${rate.retail.sport.slug}/${rate.retail.brand.slug}/${rate.retail.slug}`}>
55
+ <LineBreaker text={rate.item} />
56
+ </Link>
57
+ )
58
+ : (
59
+ <LineBreaker text={rate.item} />
60
+ )}
61
+ <p>{rate.oneHour ? `$${rate.oneHour}` : '&nbsp;'}</p>
62
+ <p>{rate.threeHour ? `$${rate.threeHour}` : '&nbsp;'}</p>
63
+ <p>{rate.fullDay ? `$${rate.fullDay}` : '&nbsp;'}</p>
64
+ <p>{rate.pedalAdd ? `+ $${rate.pedalAdd}` : '&nbsp;'}</p>
38
65
  </div>
39
66
  ))}
40
67
  </div>
@@ -39,6 +39,18 @@ body .south-tahoe {
39
39
  }
40
40
  }
41
41
 
42
+ /*------------------------------------*/
43
+ /* #HR */
44
+ /*------------------------------------*/
45
+
46
+ hr {
47
+ border-color: var(--neutral-300);
48
+
49
+ @media (prefers-color-scheme: dark) {
50
+ border-color: var(--neutral-600);
51
+ }
52
+ }
53
+
42
54
  /*------------------------------------*/
43
55
  /* #TOP-BAR */
44
56
  /*------------------------------------*/
@@ -97,11 +109,3 @@ body .south-tahoe {
97
109
  .specs .spec__unit {
98
110
  color: grey;
99
111
  }
100
-
101
- .menu__large hr {
102
- border-color: var(--neutral-300);
103
-
104
- @media (prefers-color-scheme: dark) {
105
- border-color: var(--neutral-600);
106
- }
107
- }
@@ -6,24 +6,18 @@
6
6
  /* #DEFAULTS */
7
7
  /*------------------*/
8
8
 
9
- ul {
10
- padding-inline-start: var(--kosciuszko);
9
+ ul,
10
+ ol {
11
11
  margin: 0; /* reset */
12
12
  list-style: none; /* reset */
13
+ padding-inline-start: 0;
14
+ margin-block-end: var(--vinson);
13
15
 
14
16
  li {
15
17
  display: block;
16
18
  margin-block-end: var(--baseline);
17
- }
18
- }
19
-
20
- ol {
21
- list-style: none; /* reset */
22
- margin-block-start: 0;
23
-
24
- li {
25
- display: inline flow-root list-item;
26
- margin-block-end: var(--baseline);
19
+ padding-inline-start: 0;
20
+ line-height: var(--kilimanjaro);
27
21
  }
28
22
  }
29
23
 
@@ -9,6 +9,16 @@ export type paddlePricingChartTypes = {
9
9
  threeHour: number;
10
10
  fullDay: number;
11
11
  pedalAdd?: number;
12
+
13
+ retail?: {
14
+ slug: string;
15
+ sport: {
16
+ slug: string;
17
+ };
18
+ brand: {
19
+ slug: string;
20
+ };
21
+ };
12
22
  }[];
13
23
  };
14
24
  };