@rileybathurst/paddle 1.2.7 → 1.3.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 +1 -1
- package/src/index.tsx +23 -21
- package/src/paddle-book-now.tsx +16 -0
- package/src/{PaddleBrandList.tsx → paddle-brand-list.tsx} +6 -21
- package/src/{PaddleComposition.tsx → paddle-composition.tsx} +8 -8
- package/src/paddle-format-phone-number.tsx +10 -0
- package/src/{PaddleLocationCard.tsx → paddle-location-card.tsx} +1 -1
- package/src/{PaddleLocationDeck.tsx → paddle-location-deck.tsx} +3 -2
- package/src/paddle-pricing-chart.tsx +66 -0
- package/src/{PaddlePurchase.tsx → paddle-purchase.tsx} +10 -10
- package/src/{PaddleSEO.tsx → paddle-seo.tsx} +6 -7
- package/src/{PaddleTestimonial.tsx → paddle-testimonial.tsx} +1 -1
- package/src/{PaddleTestimonials.tsx → paddle-testimonials.tsx} +2 -2
- package/src/{PaddleTextureBackgrounds.tsx → paddle-texture-backgrounds.tsx} +7 -7
- package/src/{PaddleTicket.tsx → paddle-ticket.tsx} +3 -3
- package/src/types/paddle-book-now-types.ts +6 -0
- package/src/types/paddle-brand-types.ts +13 -0
- package/src/types/{gatsby-image-type.ts → paddle-gatsby-image-type.ts} +1 -1
- package/src/types/paddle-location-deck-types.ts +1 -1
- package/src/types/paddle-pricing-chart-types.ts +25 -0
- package/src/types/paddle-purchase-types.ts +2 -2
- package/src/types/paddle-testimonial-types.ts +7 -0
- package/src/types/{ticket-types.ts → paddle-ticket-types.ts} +3 -5
- package/src/PaddleBookNow.tsx +0 -18
- package/src/types/testimonial-types.ts +0 -7
- /package/src/{PaddleInchesRemainder.tsx → paddle-inches-remainder.tsx} +0 -0
- /package/src/{PaddleMoonlightTourDatesTimes.tsx → paddle-moonlight-tour-dates-times.tsx} +0 -0
- /package/src/{PaddleSocials.tsx → paddle-socials.tsx} +0 -0
- /package/src/{PaddleSpecs.tsx → paddle-specs.tsx} +0 -0
- /package/src/{PaddleSunsetTourTimes.tsx → paddle-sunset-tour-times.tsx} +0 -0
- /package/src/{PaddleTime.tsx → paddle-time.tsx} +0 -0
- /package/src/{PaddleTopBar.tsx → paddle-top-bar.tsx} +0 -0
- /package/src/types/{location-card-types.ts → paddle-location-card-types.ts} +0 -0
package/package.json
CHANGED
package/src/index.tsx
CHANGED
|
@@ -1,36 +1,38 @@
|
|
|
1
1
|
// Atoms
|
|
2
|
-
export * from "./
|
|
3
|
-
export * from "./
|
|
2
|
+
export * from "./paddle-book-now";
|
|
3
|
+
export * from "./paddle-time";
|
|
4
4
|
export * from "./paddle-remainder";
|
|
5
|
+
export * from "./paddle-format-phone-number";
|
|
5
6
|
|
|
6
7
|
// Molecules
|
|
7
|
-
export * from "./
|
|
8
|
-
export * from "./
|
|
9
|
-
export * from "./
|
|
10
|
-
export * from "./
|
|
11
|
-
export * from "./
|
|
12
|
-
export * from "./
|
|
13
|
-
export * from "./
|
|
14
|
-
export * from "./
|
|
15
|
-
export * from "./
|
|
16
|
-
export * from "./
|
|
8
|
+
export * from "./paddle-composition";
|
|
9
|
+
export * from "./paddle-socials";
|
|
10
|
+
export * from "./paddle-location-card";
|
|
11
|
+
export * from "./paddle-testimonials";
|
|
12
|
+
export * from "./paddle-ticket";
|
|
13
|
+
export * from "./paddle-sunset-tour-times";
|
|
14
|
+
export * from "./paddle-top-bar";
|
|
15
|
+
export * from "./paddle-specs";
|
|
16
|
+
export * from "./paddle-testimonial";
|
|
17
|
+
export * from "./paddle-purchase";
|
|
17
18
|
|
|
18
19
|
// Organisms
|
|
19
|
-
export * from "./
|
|
20
|
-
export * from "./
|
|
21
|
-
export * from "./
|
|
22
|
-
export * from "./
|
|
20
|
+
export * from "./paddle-location-deck";
|
|
21
|
+
export * from "./paddle-testimonials";
|
|
22
|
+
export * from "./paddle-brand-list";
|
|
23
|
+
export * from "./paddle-moonlight-tour-dates-times"
|
|
23
24
|
|
|
24
25
|
// Templates
|
|
25
26
|
|
|
26
27
|
// Pages
|
|
27
28
|
|
|
28
29
|
// SEO
|
|
29
|
-
export * from "./
|
|
30
|
+
export * from "./paddle-seo";
|
|
30
31
|
|
|
31
32
|
// Types
|
|
32
|
-
export * from "./types/ticket-types";
|
|
33
|
-
export * from "./types/location-card-types";
|
|
33
|
+
export * from "./types/paddle-ticket-types";
|
|
34
|
+
export * from "./types/paddle-location-card-types";
|
|
34
35
|
export * from "./types/paddle-location-deck-types";
|
|
35
|
-
export * from "./types/gatsby-image-type";
|
|
36
|
-
export * from "./types/paddle-purchase-types";
|
|
36
|
+
export * from "./types/paddle-gatsby-image-type";
|
|
37
|
+
export * from "./types/paddle-purchase-types";
|
|
38
|
+
export * from "./types/paddle-brand-types";
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as React from "react"
|
|
2
|
+
import type { PaddleBookNowTypes } from "./types/paddle-book-now-types";
|
|
3
|
+
|
|
4
|
+
export const PaddleBookNow = ({ peek_base, strapiLocaleName, specificName, specificLink }: PaddleBookNowTypes) => {
|
|
5
|
+
return (
|
|
6
|
+
<a
|
|
7
|
+
href={specificLink || peek_base}
|
|
8
|
+
rel="noopener noreferrer"
|
|
9
|
+
className="book-now"
|
|
10
|
+
title={`Book now ${specificLink && <> {specificLink} </>} with ${strapiLocaleName} kayak and paddleboard`}
|
|
11
|
+
>
|
|
12
|
+
{specificName && (<>{specificName} <br /></>)}
|
|
13
|
+
BOOK NOW
|
|
14
|
+
</a>
|
|
15
|
+
);
|
|
16
|
+
};
|
|
@@ -1,27 +1,14 @@
|
|
|
1
1
|
import * as React from "react"
|
|
2
2
|
import { Link } from 'gatsby';
|
|
3
3
|
import SVG from 'react-inlinesvg';
|
|
4
|
+
import type { PaddleBrandType } from "./types/paddle-brand-types";
|
|
4
5
|
|
|
5
6
|
// * additional work is done here to split kayak and paddleboard
|
|
6
7
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
name: string;
|
|
12
|
-
retail: {
|
|
13
|
-
title: string;
|
|
14
|
-
slug: string;
|
|
15
|
-
sport: {
|
|
16
|
-
slug: string;
|
|
17
|
-
}
|
|
18
|
-
}[];
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
const PaddleBrandList = ({ nodes, sport }: { nodes: BrandType[]; sport?: string }) => {
|
|
22
|
-
|
|
23
|
-
const BrandSet = new Set<BrandType>();
|
|
24
|
-
let BrandArray: BrandType[] = [];
|
|
8
|
+
export const PaddleBrandList = ({ nodes, sport }: { nodes: PaddleBrandType[]; sport?: string }) => {
|
|
9
|
+
|
|
10
|
+
const BrandSet = new Set<PaddleBrandType>();
|
|
11
|
+
let BrandArray: PaddleBrandType[] = [];
|
|
25
12
|
|
|
26
13
|
if (sport) {
|
|
27
14
|
nodes.map((brand) => {
|
|
@@ -43,7 +30,7 @@ const PaddleBrandList = ({ nodes, sport }: { nodes: BrandType[]; sport?: string
|
|
|
43
30
|
|
|
44
31
|
return (
|
|
45
32
|
<ul className='brand_list'>
|
|
46
|
-
{BrandArray.map((brand:
|
|
33
|
+
{BrandArray.map((brand: PaddleBrandType) => (
|
|
47
34
|
<li key={brand.id}>
|
|
48
35
|
<Link to={`/retail/${sport}/${brand.slug}`}>
|
|
49
36
|
{brand.svg ?
|
|
@@ -58,5 +45,3 @@ const PaddleBrandList = ({ nodes, sport }: { nodes: BrandType[]; sport?: string
|
|
|
58
45
|
</ul>
|
|
59
46
|
)
|
|
60
47
|
}
|
|
61
|
-
|
|
62
|
-
export default PaddleBrandList
|
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
import * as React from "react"
|
|
4
4
|
import { GatsbyImage } from "gatsby-plugin-image"
|
|
5
|
-
import type {
|
|
5
|
+
import type { PaddleGatsbyImageType } from "./types/paddle-gatsby-image-type"
|
|
6
6
|
|
|
7
7
|
type defaultPaddlerTypes = {
|
|
8
8
|
sport?: string;
|
|
9
9
|
defaultKayaker: {
|
|
10
|
-
image:
|
|
10
|
+
image: PaddleGatsbyImageType;
|
|
11
11
|
};
|
|
12
12
|
defaultPaddleboarder: {
|
|
13
|
-
image:
|
|
13
|
+
image: PaddleGatsbyImageType;
|
|
14
14
|
};
|
|
15
15
|
}
|
|
16
16
|
const DefaultPaddler = ({ sport, defaultKayaker, defaultPaddleboarder }: defaultPaddlerTypes) => {
|
|
@@ -34,18 +34,18 @@ const DefaultPaddler = ({ sport, defaultKayaker, defaultPaddleboarder }: default
|
|
|
34
34
|
|
|
35
35
|
interface CompositionTypes {
|
|
36
36
|
sport?: string;
|
|
37
|
-
image?:
|
|
37
|
+
image?: PaddleGatsbyImageType;
|
|
38
38
|
defaultKayaker: {
|
|
39
|
-
image:
|
|
39
|
+
image: PaddleGatsbyImageType;
|
|
40
40
|
}
|
|
41
41
|
defaultPaddleboarder: {
|
|
42
|
-
image:
|
|
42
|
+
image: PaddleGatsbyImageType;
|
|
43
43
|
}
|
|
44
44
|
sandTexture: {
|
|
45
|
-
image:
|
|
45
|
+
image: PaddleGatsbyImageType;
|
|
46
46
|
};
|
|
47
47
|
waterTexture: {
|
|
48
|
-
image:
|
|
48
|
+
image: PaddleGatsbyImageType;
|
|
49
49
|
};
|
|
50
50
|
}
|
|
51
51
|
export const PaddleComposition = ({ sport, image, defaultKayaker, defaultPaddleboarder, sandTexture, waterTexture }: CompositionTypes) => {
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
|
|
3
|
+
export const FormatPhoneNumber = ({ phoneNumberString }: { phoneNumberString: number }) => {
|
|
4
|
+
const cleaned = (`${phoneNumberString}`).replace(/\D/g, '');
|
|
5
|
+
const match = cleaned.match(/^(\d{3})(\d{3})(\d{4})$/);
|
|
6
|
+
if (match) {
|
|
7
|
+
return `(${match[1]}) ${match[2]}-${match[3]}`;
|
|
8
|
+
}
|
|
9
|
+
return null;
|
|
10
|
+
}
|
|
@@ -4,7 +4,7 @@ import Markdown from "react-markdown";
|
|
|
4
4
|
|
|
5
5
|
import HourMin from "./hour-min";
|
|
6
6
|
import Phone from "./phone";
|
|
7
|
-
import type { PaddleLocationCardTypes } from "./types/location-card-types";
|
|
7
|
+
import type { PaddleLocationCardTypes } from "./types/paddle-location-card-types";
|
|
8
8
|
import SVG from 'react-inlinesvg';
|
|
9
9
|
|
|
10
10
|
// merged types are possible to dry this up but its also a lot
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import { PaddleLocationCard } from "./
|
|
3
|
-
import type { PaddleLocationCardTypes } from "./types/location-card-types";
|
|
2
|
+
import { PaddleLocationCard } from "./paddle-location-card";
|
|
3
|
+
import type { PaddleLocationCardTypes } from "./types/paddle-location-card-types";
|
|
4
|
+
import type { PaddleLocationDeckTypes } from "./types/paddle-location-deck-types";
|
|
4
5
|
|
|
5
6
|
export const PaddleLocationDeck = ({
|
|
6
7
|
nodes,
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import * as React from "react"
|
|
2
|
+
import SVG from 'react-inlinesvg';
|
|
3
|
+
import PaddleBookNow from "./paddle-book-now"
|
|
4
|
+
import { Link } from "gatsby"
|
|
5
|
+
import type { paddlePricingChartTypes } from "./types/paddle-pricing-chart-types";
|
|
6
|
+
|
|
7
|
+
const LineBreaker = ({ text }: { text: string; }) => {
|
|
8
|
+
const regex = /[- ]/g;
|
|
9
|
+
const newStr = text.replace(regex, "<br />$&");
|
|
10
|
+
// console.log(newStr);
|
|
11
|
+
|
|
12
|
+
return (
|
|
13
|
+
<h4>
|
|
14
|
+
<SVG src={newStr} />
|
|
15
|
+
</h4>
|
|
16
|
+
);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export const PaddlePricingChart = ({ rentalRates, rentalAddons, book, peek_base, strapiLocaleName }: paddlePricingChartTypes) => {
|
|
20
|
+
|
|
21
|
+
return (
|
|
22
|
+
<>
|
|
23
|
+
<div className="charts">
|
|
24
|
+
<div className="pricing-chart">
|
|
25
|
+
<div className="row row-header">
|
|
26
|
+
<h2 className="kilimanjaro"><Link to="/rentals">Rental<br />Rates</Link></h2>
|
|
27
|
+
<p>1 Hour</p>
|
|
28
|
+
<p><span>3 Hours</span></p>
|
|
29
|
+
<p><span>Full Day</span></p>
|
|
30
|
+
</div>
|
|
31
|
+
|
|
32
|
+
{rentalRates.nodes.map((rate) => (
|
|
33
|
+
<div key={rate.id} className="row">
|
|
34
|
+
{/* <h4>{rate.item}</h4> */}
|
|
35
|
+
<LineBreaker text={rate.item} />
|
|
36
|
+
<p>{rate.oneHour}</p>
|
|
37
|
+
<p>{rate.threeHour}</p>
|
|
38
|
+
<p>{rate.fullDay}</p>
|
|
39
|
+
</div>
|
|
40
|
+
))}
|
|
41
|
+
</div>
|
|
42
|
+
|
|
43
|
+
{rentalAddons.nodes.length > 0 ? (
|
|
44
|
+
<div className="pricing-chart">
|
|
45
|
+
{rentalAddons.nodes.map((addon) => (
|
|
46
|
+
<React.Fragment key={addon.id}>
|
|
47
|
+
<p>{addon.name}</p>
|
|
48
|
+
<p>+{addon.single}</p>
|
|
49
|
+
<p>+{addon.double}</p>
|
|
50
|
+
<p>+{addon.sup}</p>
|
|
51
|
+
</React.Fragment>
|
|
52
|
+
))}
|
|
53
|
+
</div>
|
|
54
|
+
) : null}
|
|
55
|
+
</div>
|
|
56
|
+
|
|
57
|
+
{book ? (
|
|
58
|
+
<PaddleBookNow
|
|
59
|
+
peek_base={peek_base}
|
|
60
|
+
strapiLocaleName={strapiLocaleName}
|
|
61
|
+
/>
|
|
62
|
+
) : null}
|
|
63
|
+
</>
|
|
64
|
+
|
|
65
|
+
)
|
|
66
|
+
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import { Link } from "gatsby";
|
|
3
3
|
import { GatsbyImage } from "gatsby-plugin-image";
|
|
4
|
-
import type {
|
|
5
|
-
import { PaddleInchesRemainder } from "./
|
|
6
|
-
import { PaddleTextureBackgrounds } from "./
|
|
4
|
+
import type { PaddleGatsbyImageType } from "./types/paddle-gatsby-image-type";
|
|
5
|
+
import { PaddleInchesRemainder } from "./paddle-inches-remainder";
|
|
6
|
+
import { PaddleTextureBackgrounds } from "./paddle-texture-backgrounds";
|
|
7
7
|
|
|
8
8
|
// TODO: I'm not sure if this is needed or I can loop it easier
|
|
9
9
|
interface NameTypes {
|
|
@@ -54,15 +54,15 @@ type purchaseTypes = {
|
|
|
54
54
|
capacity: number;
|
|
55
55
|
demo: boolean;
|
|
56
56
|
discount?: number;
|
|
57
|
-
cutout:
|
|
57
|
+
cutout: PaddleGatsbyImageType;
|
|
58
58
|
sportSlug: string;
|
|
59
59
|
brandSlug: string;
|
|
60
|
-
baseOne: { image:
|
|
61
|
-
baseTwo: { image:
|
|
62
|
-
baseThree: { image:
|
|
63
|
-
topOne: { image:
|
|
64
|
-
topTwo: { image:
|
|
65
|
-
topThree: { image:
|
|
60
|
+
baseOne: { image: PaddleGatsbyImageType };
|
|
61
|
+
baseTwo: { image: PaddleGatsbyImageType };
|
|
62
|
+
baseThree: { image: PaddleGatsbyImageType };
|
|
63
|
+
topOne: { image: PaddleGatsbyImageType };
|
|
64
|
+
topTwo: { image: PaddleGatsbyImageType };
|
|
65
|
+
topThree: { image: PaddleGatsbyImageType };
|
|
66
66
|
};
|
|
67
67
|
export const PaddlePurchase = ({ id, title, slug, excerpt, length, width, inflatable, capacity, demo, discount, cutout, sportSlug, brandSlug, baseOne, baseTwo, baseThree, topOne, topTwo, topThree }: purchaseTypes) => {
|
|
68
68
|
|
|
@@ -27,13 +27,13 @@ const Breadcrumbs = (breadcrumbs: BreadcrumbsTypes) => {
|
|
|
27
27
|
"@type": "BreadcrumbList",
|
|
28
28
|
"itemListElement": [
|
|
29
29
|
${Object.entries(rest).map(([key, breadcrumb]) => {
|
|
30
|
-
|
|
30
|
+
return `{
|
|
31
31
|
"@type": "ListItem",
|
|
32
32
|
"position": ${Number.parseInt(key) + 1},
|
|
33
33
|
"name": "${breadcrumb.name}",
|
|
34
34
|
"item": "${url}/${breadcrumb.item}"
|
|
35
35
|
}`;
|
|
36
|
-
|
|
36
|
+
})}
|
|
37
37
|
]
|
|
38
38
|
}
|
|
39
39
|
`}
|
|
@@ -167,9 +167,8 @@ export const PaddleSEO = ({
|
|
|
167
167
|
"postalCode": "${strapiLocation?.postalCode}",
|
|
168
168
|
"addressCountry": "US"
|
|
169
169
|
},
|
|
170
|
-
${
|
|
171
|
-
|
|
172
|
-
? `
|
|
170
|
+
${allStrapiLocation
|
|
171
|
+
? `
|
|
173
172
|
"department": [
|
|
174
173
|
${allStrapiLocation.nodes.map((location) => {
|
|
175
174
|
return `{
|
|
@@ -187,8 +186,8 @@ export const PaddleSEO = ({
|
|
|
187
186
|
})}
|
|
188
187
|
],
|
|
189
188
|
`
|
|
190
|
-
|
|
191
|
-
|
|
189
|
+
: ""
|
|
190
|
+
}
|
|
192
191
|
"areaServed": {
|
|
193
192
|
"@type": "GeoCircle",
|
|
194
193
|
"geoMidpoint": {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import { PaddleTestimonial } from "./
|
|
3
|
-
import { type TestimonialTypes } from "./types/testimonial-types";
|
|
2
|
+
import { PaddleTestimonial } from "./paddle-testimonial";
|
|
3
|
+
import { type TestimonialTypes } from "./types/paddle-testimonial-types";
|
|
4
4
|
|
|
5
5
|
interface TestimonialsTypes {
|
|
6
6
|
nodes: TestimonialTypes[];
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import { GatsbyImage } from "gatsby-plugin-image";
|
|
3
|
-
import type {
|
|
3
|
+
import type { PaddleGatsbyImageType } from "./types/paddle-gatsby-image-type";
|
|
4
4
|
|
|
5
5
|
type textureTypes = {
|
|
6
|
-
baseOne: { image:
|
|
7
|
-
baseTwo: { image:
|
|
8
|
-
baseThree: { image:
|
|
9
|
-
topOne: { image:
|
|
10
|
-
topTwo: { image:
|
|
11
|
-
topThree: { image:
|
|
6
|
+
baseOne: { image: PaddleGatsbyImageType };
|
|
7
|
+
baseTwo: { image: PaddleGatsbyImageType };
|
|
8
|
+
baseThree: { image: PaddleGatsbyImageType };
|
|
9
|
+
topOne: { image: PaddleGatsbyImageType };
|
|
10
|
+
topTwo: { image: PaddleGatsbyImageType };
|
|
11
|
+
topThree: { image: PaddleGatsbyImageType };
|
|
12
12
|
};
|
|
13
13
|
export const PaddleTextureBackgrounds = ({ baseOne, baseTwo, baseThree, topOne, topTwo, topThree }: textureTypes) => {
|
|
14
14
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import { Link } from "gatsby";
|
|
3
3
|
import { GatsbyImage } from "gatsby-plugin-image";
|
|
4
|
-
import type { PaddleTicketTypes } from "./types/ticket-types";
|
|
5
|
-
import { PaddleTime } from "./
|
|
6
|
-
import { PaddleBookNow } from "./
|
|
4
|
+
import type { PaddleTicketTypes } from "./types/paddle-ticket-types";
|
|
5
|
+
import { PaddleTime } from "./paddle-time";
|
|
6
|
+
import { PaddleBookNow } from "./paddle-book-now";
|
|
7
7
|
|
|
8
8
|
export const PaddleTicket = ({
|
|
9
9
|
ogimage,
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
|
|
3
|
+
export type paddlePricingChartTypes = {
|
|
4
|
+
rentalRates: {
|
|
5
|
+
nodes: {
|
|
6
|
+
id: React.Key;
|
|
7
|
+
item: string;
|
|
8
|
+
oneHour: number;
|
|
9
|
+
threeHour: number;
|
|
10
|
+
fullDay: number;
|
|
11
|
+
}[];
|
|
12
|
+
};
|
|
13
|
+
rentalAddons: {
|
|
14
|
+
nodes: {
|
|
15
|
+
id: React.Key;
|
|
16
|
+
name: string;
|
|
17
|
+
single: number;
|
|
18
|
+
double: number;
|
|
19
|
+
sup: number;
|
|
20
|
+
}[];
|
|
21
|
+
};
|
|
22
|
+
book?: boolean;
|
|
23
|
+
peek_base: string;
|
|
24
|
+
strapiLocaleName: string;
|
|
25
|
+
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { PaddleGatsbyImageType } from "./paddle-gatsby-image-type";
|
|
2
2
|
|
|
3
3
|
export type PaddlePurchaseTypes = {
|
|
4
4
|
id: string;
|
|
@@ -11,7 +11,7 @@ export type PaddlePurchaseTypes = {
|
|
|
11
11
|
capacity: number;
|
|
12
12
|
demo: boolean;
|
|
13
13
|
discount?: number;
|
|
14
|
-
cutout:
|
|
14
|
+
cutout: PaddleGatsbyImageType;
|
|
15
15
|
sport: {
|
|
16
16
|
slug: string;
|
|
17
17
|
};
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { PaddleGatsbyImageType } from "./paddle-gatsby-image-type";
|
|
2
2
|
|
|
3
3
|
export type PaddleTicketTypes = {
|
|
4
4
|
id: React.Key;
|
|
5
|
-
ogimage:
|
|
6
|
-
|
|
7
|
-
alternativeText?: string;
|
|
8
|
-
};
|
|
5
|
+
ogimage: PaddleGatsbyImageType;
|
|
6
|
+
image: PaddleGatsbyImageType;
|
|
9
7
|
slug: string;
|
|
10
8
|
name: string;
|
|
11
9
|
start?: string;
|
package/src/PaddleBookNow.tsx
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import * as React from "react"
|
|
2
|
-
|
|
3
|
-
interface BookNowTypes {
|
|
4
|
-
peek_base: string
|
|
5
|
-
strapiLocaleName: string
|
|
6
|
-
specificName?: string
|
|
7
|
-
specificLink?: string
|
|
8
|
-
}
|
|
9
|
-
export const PaddleBookNow = ({ peek_base, strapiLocaleName, specificName, specificLink }: BookNowTypes) =>
|
|
10
|
-
<a
|
|
11
|
-
href={specificLink || peek_base}
|
|
12
|
-
rel="noopener noreferrer"
|
|
13
|
-
className="book-now"
|
|
14
|
-
title={`Book now ${specificLink && <> {specificLink} </>} with ${strapiLocaleName} kayak and paddleboard`}
|
|
15
|
-
>
|
|
16
|
-
{specificName && (<>{specificName} <br /></>)}
|
|
17
|
-
BOOK NOW
|
|
18
|
-
</a>
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|