@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 CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@rileybathurst/paddle",
3
3
  "private": false,
4
- "version": "1.9.32",
4
+ "version": "1.9.33",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "dev": "tsc --noEmit && stay-gold && vite",
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
  }
@@ -1,13 +1,14 @@
1
1
  // ! this is the next fix
2
2
 
3
- import React from 'react';
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 CompareDetailsProps = {
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
- }: CompareDetailsProps) => {
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 || 'not set';
138
- let duration2 = tours[1].duration || 'not set';
139
- let timeframe1 = tours[0].timeframe || 'not set';
140
- let timeframe2 = tours[1].timeframe || 'not set';
141
- let start1 = tours[0].start || 'not set';
142
- let start2 = tours[1].start || 'not set';
143
- let finish1 = tours[0].finish || 'not set';
144
- let finish2 = tours[1].finish || 'not set';
145
- let excerpt1 = tours[0].excerpt || 'not set';
146
- let excerpt2 = tours[1].excerpt || 'not set';
147
- let minimum1 = tours[0].minimum || 0;
148
- let minimum2 = tours[1].minimum || 0;
149
- let price1 = tours[0].price || 0;
150
- let price2 = tours[1].price || 0;
151
- let peeks1 = tours[0].peek || 'not set';
152
- let peeks2 = tours[1].peek || 'not set';
153
- let fitness1 = tours[0].fitness || 'fitness';
154
- let fitness2 = tours[1].fitness || 'fitness';
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={strapiBranchName}
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={strapiBranchName}
252
+ location={location2}
206
253
  excerpt={excerpt2}
207
254
  minimum={minimum2}
208
255
  price={price2}