@rileybathurst/paddle 1.9.32 → 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 +1 -1
- package/src/App.tsx +57 -1
- package/src/paddle-compare.tsx +76 -29
package/package.json
CHANGED
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
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;
|
|
@@ -43,6 +44,7 @@ type CompareDetailsProps = {
|
|
|
43
44
|
|
|
44
45
|
const CompareDetails = ({
|
|
45
46
|
title,
|
|
47
|
+
onTourChange,
|
|
46
48
|
link,
|
|
47
49
|
sport,
|
|
48
50
|
// duration,
|
|
@@ -58,7 +60,7 @@ const CompareDetails = ({
|
|
|
58
60
|
peek_base,
|
|
59
61
|
strapiBranchName,
|
|
60
62
|
tours
|
|
61
|
-
}:
|
|
63
|
+
}: CompareDetailsTypes) => {
|
|
62
64
|
return (
|
|
63
65
|
<section>
|
|
64
66
|
<select
|
|
@@ -66,6 +68,8 @@ const CompareDetails = ({
|
|
|
66
68
|
id={title}
|
|
67
69
|
className="comparesheet_select"
|
|
68
70
|
aria-label="Select first tour or lesson"
|
|
71
|
+
value={title}
|
|
72
|
+
onChange={(e) => onTourChange(e.target.value)}
|
|
69
73
|
>
|
|
70
74
|
{tours.map((tour) => (
|
|
71
75
|
<option
|
|
@@ -76,6 +80,7 @@ const CompareDetails = ({
|
|
|
76
80
|
</option>
|
|
77
81
|
))}
|
|
78
82
|
</select>
|
|
83
|
+
|
|
79
84
|
<h2 className="kilimanjaro">
|
|
80
85
|
<a href={link}>{title}</a>
|
|
81
86
|
</h2>
|
|
@@ -128,30 +133,70 @@ export const PaddleCompare = ({ tours, strapiBranchName, peek_base }: PaddleComp
|
|
|
128
133
|
let id1 = tours[0].id;
|
|
129
134
|
let id2 = tours[1].id;
|
|
130
135
|
|
|
131
|
-
let tour1 = tours[0].name;
|
|
132
|
-
let tour2 = tours[1].name;
|
|
133
|
-
let link1 = tours[0].slug;
|
|
134
|
-
let link2 = tours[1].slug;
|
|
135
|
-
let sport1 = tours[0].sport;
|
|
136
|
-
let sport2 = tours[1].sport;
|
|
137
|
-
let duration1 = tours[0].duration ||
|
|
138
|
-
let duration2 = tours[1].duration ||
|
|
139
|
-
let timeframe1 = tours[0].timeframe ||
|
|
140
|
-
let timeframe2 = tours[1].timeframe ||
|
|
141
|
-
let start1 = tours[0].start ||
|
|
142
|
-
let start2 = tours[1].start ||
|
|
143
|
-
let finish1 = tours[0].finish ||
|
|
144
|
-
let finish2 = tours[1].finish ||
|
|
145
|
-
let
|
|
146
|
-
let
|
|
147
|
-
let
|
|
148
|
-
let
|
|
149
|
-
let
|
|
150
|
-
let
|
|
151
|
-
let
|
|
152
|
-
let
|
|
153
|
-
let
|
|
154
|
-
let
|
|
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
|
+
};
|
|
155
200
|
|
|
156
201
|
return (
|
|
157
202
|
<>
|
|
@@ -175,13 +220,14 @@ export const PaddleCompare = ({ tours, strapiBranchName, peek_base }: PaddleComp
|
|
|
175
220
|
<CompareDetails
|
|
176
221
|
key={id1}
|
|
177
222
|
title={tour1}
|
|
223
|
+
onTourChange={updateTour1}
|
|
178
224
|
link={link1}
|
|
179
225
|
sport={sport1}
|
|
180
226
|
duration={duration1}
|
|
181
227
|
timeframe={timeframe1}
|
|
182
228
|
start={start1}
|
|
183
229
|
finish={finish1}
|
|
184
|
-
location={
|
|
230
|
+
location={location1}
|
|
185
231
|
excerpt={excerpt1}
|
|
186
232
|
minimum={minimum1}
|
|
187
233
|
price={price1}
|
|
@@ -196,13 +242,14 @@ export const PaddleCompare = ({ tours, strapiBranchName, peek_base }: PaddleComp
|
|
|
196
242
|
<CompareDetails
|
|
197
243
|
key={id2}
|
|
198
244
|
title={tour2}
|
|
245
|
+
onTourChange={updateTour2}
|
|
199
246
|
link={link2}
|
|
200
247
|
sport={sport2}
|
|
201
248
|
duration={duration2}
|
|
202
249
|
timeframe={timeframe2}
|
|
203
250
|
start={start2}
|
|
204
251
|
finish={finish2}
|
|
205
|
-
location={
|
|
252
|
+
location={location2}
|
|
206
253
|
excerpt={excerpt2}
|
|
207
254
|
minimum={minimum2}
|
|
208
255
|
price={price2}
|