@rileybathurst/paddle 1.5.3 → 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.3",
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
  }
@@ -31,17 +51,17 @@ export const PaddlePricingChart = ({ rentalRates }: paddlePricingChartTypes) =>
31
51
  {rentalRates.nodes.map((rate) => (
32
52
  <div key={rate.id} className="column">
33
53
  {rate.retail ? (
34
- <Link to={`/retail/${rate.retail.slug}`}>
54
+ <Link to={`/retail/${rate.retail.sport.slug}/${rate.retail.brand.slug}/${rate.retail.slug}`}>
35
55
  <LineBreaker text={rate.item} />
36
56
  </Link>
37
57
  )
38
58
  : (
39
59
  <LineBreaker text={rate.item} />
40
60
  )}
41
- <p>{rate.oneHour ? `($${rate.oneHour})` : null}</p>
42
- <p>{rate.threeHour ? `($${rate.threeHour})` : null}</p>
43
- <p>{rate.fullDay ? `($${rate.fullDay})` : null}</p>
44
- <p>{rate.pedalAdd ? `+ $${rate.pedalAdd}` : null}</p>
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>
45
65
  </div>
46
66
  ))}
47
67
  </div>
@@ -12,6 +12,12 @@ export type paddlePricingChartTypes = {
12
12
 
13
13
  retail?: {
14
14
  slug: string;
15
+ sport: {
16
+ slug: string;
17
+ };
18
+ brand: {
19
+ slug: string;
20
+ };
15
21
  };
16
22
  }[];
17
23
  };