@rileybathurst/paddle 1.9.31 → 1.9.33
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 +2 -1
- package/src/App.tsx +57 -1
- package/src/paddle-compare.tsx +112 -54
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rileybathurst/paddle",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "1.9.
|
|
4
|
+
"version": "1.9.33",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"dev": "tsc --noEmit && stay-gold && vite",
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
"lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
|
|
11
11
|
"preview": "vite preview",
|
|
12
12
|
"storybook": "tsc --noEmit && stay-gold && storybook dev -p 6006",
|
|
13
|
+
"storybook-dirty": "storybook dev -p 6006",
|
|
13
14
|
"build-storybook": "storybook build",
|
|
14
15
|
"release": "npm version patch && npm login && npm publish",
|
|
15
16
|
"stay-gold": "stay-gold"
|
package/src/App.tsx
CHANGED
|
@@ -4,6 +4,7 @@ import { useState } from 'react'
|
|
|
4
4
|
import reactLogo from './assets/react.svg'
|
|
5
5
|
import viteLogo from '/vite.svg'
|
|
6
6
|
import { PaddlePricingChart } from './paddle-pricing-chart'
|
|
7
|
+
import { PaddleCompare } from './paddle-compare'
|
|
7
8
|
|
|
8
9
|
function App() {
|
|
9
10
|
const [count, setCount] = useState(0)
|
|
@@ -31,7 +32,7 @@ function App() {
|
|
|
31
32
|
Click on the Vite and React logos to learn more
|
|
32
33
|
</p>
|
|
33
34
|
|
|
34
|
-
{/* testing */}
|
|
35
|
+
{/* // TODO: testing */}
|
|
35
36
|
<PaddlePricingChart
|
|
36
37
|
rentalRates={{
|
|
37
38
|
nodes: [
|
|
@@ -94,6 +95,61 @@ function App() {
|
|
|
94
95
|
slug: 'tahoe-city'
|
|
95
96
|
}}
|
|
96
97
|
/>
|
|
98
|
+
|
|
99
|
+
<PaddleCompare
|
|
100
|
+
peek_base="123"
|
|
101
|
+
strapiBranchName="south-tahoe"
|
|
102
|
+
tours={[
|
|
103
|
+
{
|
|
104
|
+
id: 1,
|
|
105
|
+
name: "Tour 1",
|
|
106
|
+
slug: "tour-1",
|
|
107
|
+
sport: "Paddleboarding",
|
|
108
|
+
duration: "2 hours",
|
|
109
|
+
timeframe: "Morning",
|
|
110
|
+
start: "9:00 AM",
|
|
111
|
+
finish: "11:00 AM",
|
|
112
|
+
fitness: "Easy",
|
|
113
|
+
location: "Lake Tahoe",
|
|
114
|
+
excerpt: "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
|
|
115
|
+
minimum: 2,
|
|
116
|
+
price: 100,
|
|
117
|
+
peek: "456"
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
id: 2,
|
|
121
|
+
name: "Tour 2",
|
|
122
|
+
slug: "tour-2",
|
|
123
|
+
sport: "Paddleboarding",
|
|
124
|
+
duration: "3 hours",
|
|
125
|
+
timeframe: "Afternoon",
|
|
126
|
+
start: "1:00 PM",
|
|
127
|
+
finish: "4:00 PM",
|
|
128
|
+
fitness: "Moderate",
|
|
129
|
+
location: "Lake Tahoe",
|
|
130
|
+
excerpt: "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
|
|
131
|
+
minimum: 2,
|
|
132
|
+
price: 150,
|
|
133
|
+
peek: "789"
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
id: 3,
|
|
137
|
+
name: "Tour 3",
|
|
138
|
+
slug: "tour-3",
|
|
139
|
+
sport: "Paddleboarding",
|
|
140
|
+
duration: "4 hours",
|
|
141
|
+
timeframe: "Evening",
|
|
142
|
+
start: "5:00 PM",
|
|
143
|
+
finish: "9:00 PM",
|
|
144
|
+
fitness: "Hard",
|
|
145
|
+
location: "Lake Tahoe",
|
|
146
|
+
excerpt: "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
|
|
147
|
+
minimum: 2,
|
|
148
|
+
price: 200,
|
|
149
|
+
peek: "101112"
|
|
150
|
+
}
|
|
151
|
+
]}
|
|
152
|
+
/>
|
|
97
153
|
</>
|
|
98
154
|
)
|
|
99
155
|
}
|
package/src/paddle-compare.tsx
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
// ! this is the next fix
|
|
2
2
|
|
|
3
|
-
import React from
|
|
3
|
+
import React, { useState } from "react";
|
|
4
4
|
|
|
5
|
-
import { PaddleTime } from './paddle-time';
|
|
5
|
+
// import { PaddleTime } from './paddle-time';
|
|
6
6
|
import { PaddleBookNow } from './paddle-book-now';
|
|
7
7
|
import type { PaddleCompareTypes } from './types/paddle-compare-types';
|
|
8
8
|
|
|
9
|
-
type
|
|
9
|
+
type CompareDetailsTypes = {
|
|
10
10
|
title: string;
|
|
11
|
+
onTourChange: (value: string) => void;
|
|
11
12
|
link: string;
|
|
12
13
|
sport: string;
|
|
13
14
|
duration?: string;
|
|
@@ -22,10 +23,28 @@ type CompareDetailsProps = {
|
|
|
22
23
|
peeks?: string;
|
|
23
24
|
peek_base: string;
|
|
24
25
|
strapiBranchName: string;
|
|
26
|
+
|
|
27
|
+
// ? this can maybe loop from itself?
|
|
28
|
+
tours: {
|
|
29
|
+
id: React.Key;
|
|
30
|
+
name: string;
|
|
31
|
+
slug: string;
|
|
32
|
+
sport: string;
|
|
33
|
+
duration?: string;
|
|
34
|
+
timeframe?: string;
|
|
35
|
+
start?: string;
|
|
36
|
+
finish?: string;
|
|
37
|
+
excerpt?: string;
|
|
38
|
+
minimum?: number;
|
|
39
|
+
price?: number;
|
|
40
|
+
peek?: string;
|
|
41
|
+
fitness?: string;
|
|
42
|
+
}[];
|
|
25
43
|
};
|
|
26
44
|
|
|
27
|
-
const CompareDetails = ({
|
|
45
|
+
const CompareDetails = ({
|
|
28
46
|
title,
|
|
47
|
+
onTourChange,
|
|
29
48
|
link,
|
|
30
49
|
sport,
|
|
31
50
|
// duration,
|
|
@@ -39,30 +58,36 @@ const CompareDetails = ({
|
|
|
39
58
|
price,
|
|
40
59
|
peeks,
|
|
41
60
|
peek_base,
|
|
42
|
-
strapiBranchName
|
|
61
|
+
strapiBranchName,
|
|
62
|
+
tours
|
|
63
|
+
}: CompareDetailsTypes) => {
|
|
43
64
|
return (
|
|
44
65
|
<section>
|
|
45
|
-
|
|
66
|
+
<select
|
|
46
67
|
name="tour1"
|
|
47
68
|
id={title}
|
|
48
69
|
className="comparesheet_select"
|
|
49
70
|
aria-label="Select first tour or lesson"
|
|
71
|
+
value={title}
|
|
72
|
+
onChange={(e) => onTourChange(e.target.value)}
|
|
50
73
|
>
|
|
51
|
-
{
|
|
74
|
+
{tours.map((tour) => (
|
|
52
75
|
<option
|
|
53
|
-
key={
|
|
54
|
-
value={
|
|
76
|
+
key={tour.id}
|
|
77
|
+
value={tour.name}
|
|
55
78
|
>
|
|
56
|
-
{
|
|
79
|
+
{tour.name}
|
|
57
80
|
</option>
|
|
58
81
|
))}
|
|
59
|
-
</select>
|
|
82
|
+
</select>
|
|
83
|
+
|
|
60
84
|
<h2 className="kilimanjaro">
|
|
61
85
|
<a href={link}>{title}</a>
|
|
62
86
|
</h2>
|
|
63
87
|
|
|
64
88
|
<h4 className="capitalize">{sport}</h4>
|
|
65
89
|
|
|
90
|
+
{/* // TODO: time is more complex so just get it running first */}
|
|
66
91
|
{/* <p>
|
|
67
92
|
<PaddleTime
|
|
68
93
|
start={start}
|
|
@@ -107,31 +132,71 @@ export const PaddleCompare = ({ tours, strapiBranchName, peek_base }: PaddleComp
|
|
|
107
132
|
|
|
108
133
|
let id1 = tours[0].id;
|
|
109
134
|
let id2 = tours[1].id;
|
|
110
|
-
|
|
111
|
-
let tour1 = tours[0].name;
|
|
112
|
-
let tour2 = tours[1].name;
|
|
113
|
-
let link1 = tours[0].slug;
|
|
114
|
-
let link2 = tours[1].slug;
|
|
115
|
-
let sport1 = tours[0].sport;
|
|
116
|
-
let sport2 = tours[1].sport;
|
|
117
|
-
let duration1 = tours[0].duration ||
|
|
118
|
-
let duration2 = tours[1].duration ||
|
|
119
|
-
let timeframe1 = tours[0].timeframe ||
|
|
120
|
-
let timeframe2 = tours[1].timeframe ||
|
|
121
|
-
let start1 = tours[0].start ||
|
|
122
|
-
let start2 = tours[1].start ||
|
|
123
|
-
let finish1 = tours[0].finish ||
|
|
124
|
-
let finish2 = tours[1].finish ||
|
|
125
|
-
let
|
|
126
|
-
let
|
|
127
|
-
let
|
|
128
|
-
let
|
|
129
|
-
let
|
|
130
|
-
let
|
|
131
|
-
let
|
|
132
|
-
let
|
|
133
|
-
let
|
|
134
|
-
let
|
|
135
|
+
|
|
136
|
+
let [tour1, setTour1] = useState(tours[0].name || "Tour 1");
|
|
137
|
+
let [tour2, setTour2] = useState(tours[1].name || "Tour 2");
|
|
138
|
+
let [link1, setLink1] = useState(tours[0].slug || "not set");
|
|
139
|
+
let [link2, setLink2] = useState(tours[1].slug || "not set");
|
|
140
|
+
let [sport1, setSport1] = useState(tours[0].sport || "not set");
|
|
141
|
+
let [sport2, setSport2] = useState(tours[1].sport || "not set");
|
|
142
|
+
let [duration1, setDuration1] = useState(tours[0].duration || "not set");
|
|
143
|
+
let [duration2, setDuration2] = useState(tours[1].duration || "not set");
|
|
144
|
+
let [timeframe1, setTimeframe1] = useState(tours[0].timeframe || "not set");
|
|
145
|
+
let [timeframe2, setTimeframe2] = useState(tours[1].timeframe || "not set");
|
|
146
|
+
let [start1, setStart1] = useState(tours[0].start || "not set");
|
|
147
|
+
let [start2, setStart2] = useState(tours[1].start || "not set");
|
|
148
|
+
let [finish1, setFinish1] = useState(tours[0].finish || "not set");
|
|
149
|
+
let [finish2, setFinish2] = useState(tours[1].finish || "not set");
|
|
150
|
+
let [location1, setLocation1] = useState(tours[0].location || strapiBranchName);
|
|
151
|
+
let [location2, setLocation2] = useState(tours[1].location || strapiBranchName);
|
|
152
|
+
let [excerpt1, setExcerpt1] = useState(tours[0].excerpt || "not set");
|
|
153
|
+
let [excerpt2, setExcerpt2] = useState(tours[1].excerpt || "not set");
|
|
154
|
+
let [minimum1, setMinimum1] = useState(tours[0].minimum || 0);
|
|
155
|
+
let [minimum2, setMinimum2] = useState(tours[1].minimum || 0);
|
|
156
|
+
let [price1, setPrice1] = useState(tours[0].price || 0);
|
|
157
|
+
let [price2, setPrice2] = useState(tours[1].price || 0);
|
|
158
|
+
let [peeks1, setPeeks1] = useState(tours[0].peek || "not set");
|
|
159
|
+
let [peeks2, setPeeks2] = useState(tours[1].peek || "not set");
|
|
160
|
+
let [fitness1, setFitness1] = useState(tours[0].fitness || "fitness");
|
|
161
|
+
let [fitness2, setFitness2] = useState(tours[1].fitness || "fitness");
|
|
162
|
+
|
|
163
|
+
const updateTour1 = (selectedName: string) => {
|
|
164
|
+
const selectedTour = tours.find((tour) => tour.name === selectedName);
|
|
165
|
+
if (!selectedTour) return;
|
|
166
|
+
|
|
167
|
+
setTour1(selectedTour.name);
|
|
168
|
+
setLink1(selectedTour.slug || "not set");
|
|
169
|
+
setSport1(selectedTour.sport || "not set");
|
|
170
|
+
setDuration1(selectedTour.duration || "not set");
|
|
171
|
+
setTimeframe1(selectedTour.timeframe || "not set");
|
|
172
|
+
setStart1(selectedTour.start || "not set");
|
|
173
|
+
setFinish1(selectedTour.finish || "not set");
|
|
174
|
+
setLocation1(selectedTour.location || strapiBranchName);
|
|
175
|
+
setExcerpt1(selectedTour.excerpt || "not set");
|
|
176
|
+
setMinimum1(selectedTour.minimum || 0);
|
|
177
|
+
setPrice1(selectedTour.price || 0);
|
|
178
|
+
setPeeks1(selectedTour.peek || "not set");
|
|
179
|
+
setFitness1(selectedTour.fitness || "fitness");
|
|
180
|
+
};
|
|
181
|
+
|
|
182
|
+
const updateTour2 = (selectedName: string) => {
|
|
183
|
+
const selectedTour = tours.find((tour) => tour.name === selectedName);
|
|
184
|
+
if (!selectedTour) return;
|
|
185
|
+
|
|
186
|
+
setTour2(selectedTour.name);
|
|
187
|
+
setLink2(selectedTour.slug || "not set");
|
|
188
|
+
setSport2(selectedTour.sport || "not set");
|
|
189
|
+
setDuration2(selectedTour.duration || "not set");
|
|
190
|
+
setTimeframe2(selectedTour.timeframe || "not set");
|
|
191
|
+
setStart2(selectedTour.start || "not set");
|
|
192
|
+
setFinish2(selectedTour.finish || "not set");
|
|
193
|
+
setLocation2(selectedTour.location || strapiBranchName);
|
|
194
|
+
setExcerpt2(selectedTour.excerpt || "not set");
|
|
195
|
+
setMinimum2(selectedTour.minimum || 0);
|
|
196
|
+
setPrice2(selectedTour.price || 0);
|
|
197
|
+
setPeeks2(selectedTour.peek || "not set");
|
|
198
|
+
setFitness2(selectedTour.fitness || "fitness");
|
|
199
|
+
};
|
|
135
200
|
|
|
136
201
|
return (
|
|
137
202
|
<>
|
|
@@ -152,57 +217,50 @@ export const PaddleCompare = ({ tours, strapiBranchName, peek_base }: PaddleComp
|
|
|
152
217
|
<p className='button-drop'>Book Now</p>
|
|
153
218
|
</div>
|
|
154
219
|
|
|
155
|
-
<select
|
|
156
|
-
name="tour1"
|
|
157
|
-
// id={id1}
|
|
158
|
-
className="comparesheet_select"
|
|
159
|
-
aria-label="Select first tour or lesson"
|
|
160
|
-
>
|
|
161
|
-
{tours.map((tour) => (
|
|
162
|
-
<option
|
|
163
|
-
key={tour.id}
|
|
164
|
-
value={tour.id}
|
|
165
|
-
>
|
|
166
|
-
{tour.name}
|
|
167
|
-
</option>
|
|
168
|
-
))}
|
|
169
|
-
</select>
|
|
170
|
-
|
|
171
220
|
<CompareDetails
|
|
172
221
|
key={id1}
|
|
173
222
|
title={tour1}
|
|
223
|
+
onTourChange={updateTour1}
|
|
174
224
|
link={link1}
|
|
175
225
|
sport={sport1}
|
|
176
226
|
duration={duration1}
|
|
177
227
|
timeframe={timeframe1}
|
|
178
228
|
start={start1}
|
|
179
229
|
finish={finish1}
|
|
180
|
-
location={
|
|
230
|
+
location={location1}
|
|
181
231
|
excerpt={excerpt1}
|
|
182
232
|
minimum={minimum1}
|
|
183
233
|
price={price1}
|
|
184
234
|
peeks={peeks1}
|
|
185
235
|
fitness={fitness1}
|
|
236
|
+
|
|
186
237
|
strapiBranchName={strapiBranchName}
|
|
187
238
|
peek_base={peek_base}
|
|
239
|
+
|
|
240
|
+
tours={tours}
|
|
188
241
|
/>
|
|
189
242
|
<CompareDetails
|
|
190
243
|
key={id2}
|
|
191
244
|
title={tour2}
|
|
245
|
+
onTourChange={updateTour2}
|
|
192
246
|
link={link2}
|
|
193
247
|
sport={sport2}
|
|
194
248
|
duration={duration2}
|
|
195
249
|
timeframe={timeframe2}
|
|
196
250
|
start={start2}
|
|
197
251
|
finish={finish2}
|
|
198
|
-
location={
|
|
252
|
+
location={location2}
|
|
199
253
|
excerpt={excerpt2}
|
|
200
254
|
minimum={minimum2}
|
|
201
255
|
price={price2}
|
|
202
256
|
peeks={peeks2}
|
|
203
257
|
fitness={fitness2}
|
|
258
|
+
|
|
204
259
|
strapiBranchName={strapiBranchName}
|
|
205
260
|
peek_base={peek_base}
|
|
261
|
+
|
|
262
|
+
tours={tours}
|
|
263
|
+
|
|
206
264
|
/>
|
|
207
265
|
|
|
208
266
|
</div>
|