@bailaya/react 1.0.38 → 1.0.40
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/README.md +168 -168
- package/dist/components/ClassSchedule.d.ts.map +1 -1
- package/dist/components/ClassSchedule.js +45 -9
- package/dist/components/ClassScheduleByType.d.ts.map +1 -1
- package/dist/components/ClassScheduleByType.js +54 -24
- package/dist/components/EventSchedule.d.ts.map +1 -1
- package/dist/components/EventSchedule.js +48 -12
- package/package.json +39 -39
package/README.md
CHANGED
|
@@ -1,168 +1,168 @@
|
|
|
1
|
-
# @bailaya/react
|
|
2
|
-
|
|
3
|
-
> A React component library and hooks for the BailaYa public API
|
|
4
|
-
|
|
5
|
-
## Overview
|
|
6
|
-
|
|
7
|
-
`@bailaya/react` builds on top of **@bailaya/core** to provide:
|
|
8
|
-
|
|
9
|
-
* A **`BailayaProvider`** + **`useBailayaClient`** context
|
|
10
|
-
* React **hooks** for fetching all core data (with `loading`, `error`, `data`, and `refetch`)
|
|
11
|
-
* **Components** with sensible Tailwind defaults (and full styling slots)
|
|
12
|
-
* Full TypeScript support, including localized text & date formatting
|
|
13
|
-
|
|
14
|
-
> Works **with or without Tailwind**. If you don’t use Tailwind, just override the class props (or use the render props) to apply your own styling.
|
|
15
|
-
|
|
16
|
-
## Features
|
|
17
|
-
|
|
18
|
-
* **Context + client** (`BailayaProvider` + `useBailayaClient`)
|
|
19
|
-
* **Hooks** (all return `{ data, error, loading, refetch }`)
|
|
20
|
-
|
|
21
|
-
* `useStudioProfile(overrideId?)`
|
|
22
|
-
* `useUserProfile(userId)`
|
|
23
|
-
* `useInstructors(overrideId?)`
|
|
24
|
-
* `useClasses(from?, overrideId?)`
|
|
25
|
-
* `useClassesByType(typeName, from?, overrideId?)`
|
|
26
|
-
* `useEvents(from?, overrideId?)`
|
|
27
|
-
* **Components** (all props overridable)
|
|
28
|
-
|
|
29
|
-
* `<StudioProfileCard />`
|
|
30
|
-
* `<UserProfileCard />`
|
|
31
|
-
* `<InstructorList />`
|
|
32
|
-
* `<ClassSchedule />`
|
|
33
|
-
* `<ClassScheduleByType />`
|
|
34
|
-
* `<EventSchedule />`
|
|
35
|
-
* `<StudioDescription />`
|
|
36
|
-
|
|
37
|
-
## Installation
|
|
38
|
-
|
|
39
|
-
```bash
|
|
40
|
-
npm install @bailaya/react
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
or with Yarn:
|
|
44
|
-
|
|
45
|
-
```bash
|
|
46
|
-
yarn add @bailaya/react
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
> **Peer Dependencies**
|
|
50
|
-
>
|
|
51
|
-
> * `"react": ">=17"`
|
|
52
|
-
> * `"react-dom": ">=17"`
|
|
53
|
-
|
|
54
|
-
---
|
|
55
|
-
|
|
56
|
-
## Quick Start
|
|
57
|
-
|
|
58
|
-
First, wrap your app with **BailayaProvider**:
|
|
59
|
-
|
|
60
|
-
```tsx
|
|
61
|
-
// App.tsx
|
|
62
|
-
import React from "react";
|
|
63
|
-
import { BailayaProvider } from "@bailaya/react";
|
|
64
|
-
|
|
65
|
-
export default function App() {
|
|
66
|
-
return (
|
|
67
|
-
<BailayaProvider config={{ studioId: "YOUR_STUDIO_ID" }}>
|
|
68
|
-
{/* ...your app */}
|
|
69
|
-
</BailayaProvider>
|
|
70
|
-
);
|
|
71
|
-
}
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
### Using a Hook
|
|
75
|
-
|
|
76
|
-
```tsx
|
|
77
|
-
import React from "react";
|
|
78
|
-
import { useInstructors } from "@bailaya/react";
|
|
79
|
-
|
|
80
|
-
export function TeamSection() {
|
|
81
|
-
const { data: instructors, loading, error, refetch } = useInstructors();
|
|
82
|
-
|
|
83
|
-
if (loading) return <p>Loading...</p>;
|
|
84
|
-
if (error) return <p>Error: {error.message}</p>;
|
|
85
|
-
|
|
86
|
-
return (
|
|
87
|
-
<>
|
|
88
|
-
<button onClick={refetch}>Refresh</button>
|
|
89
|
-
<ul>
|
|
90
|
-
{instructors?.map((i) => (
|
|
91
|
-
<li key={i.id}>{i.name} {i.lastname}</li>
|
|
92
|
-
))}
|
|
93
|
-
</ul>
|
|
94
|
-
</>
|
|
95
|
-
);
|
|
96
|
-
}
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
### Using a Component
|
|
100
|
-
|
|
101
|
-
```tsx
|
|
102
|
-
import React from "react";
|
|
103
|
-
import { StudioProfileCard } from "@bailaya/react";
|
|
104
|
-
|
|
105
|
-
export function Dashboard() {
|
|
106
|
-
return (
|
|
107
|
-
<div className="max-w-md mx-auto">
|
|
108
|
-
<StudioProfileCard locale="en" />
|
|
109
|
-
</div>
|
|
110
|
-
);
|
|
111
|
-
}
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
---
|
|
115
|
-
|
|
116
|
-
## API Reference
|
|
117
|
-
|
|
118
|
-
### `<BailayaProvider config>`
|
|
119
|
-
|
|
120
|
-
Provides `useBailayaClient()` context.
|
|
121
|
-
|
|
122
|
-
* `config.baseUrl?: string` – override default API URL
|
|
123
|
-
* `config.studioId?: string` – default studio ID
|
|
124
|
-
|
|
125
|
-
### Hooks
|
|
126
|
-
|
|
127
|
-
All hooks return:
|
|
128
|
-
|
|
129
|
-
```ts
|
|
130
|
-
{
|
|
131
|
-
data: T | null;
|
|
132
|
-
error: Error | null;
|
|
133
|
-
loading: boolean;
|
|
134
|
-
refetch: () => Promise<void>;
|
|
135
|
-
}
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
| Hook | Description |
|
|
139
|
-
|--------------------------------------------------|--------------------------------------------------------------|
|
|
140
|
-
| `useStudioProfile(overrideId?)` | Fetch a studio’s profile. |
|
|
141
|
-
| `useUserProfile(userId)` | Fetch a user’s profile / bio. |
|
|
142
|
-
| `useInstructors(overrideId?)` | Fetch list of active instructors (owner, admin, instructor). |
|
|
143
|
-
| `useClasses(from?, overrideId?)` | Fetch next 7 days of classes (all types). |
|
|
144
|
-
| `useClassesByType(typeName, from?, overrideId?)` | Fetch next 7 days of classes filtered by `typeName`. |
|
|
145
|
-
| `useEvents(from?, overrideId?)` | Fetch next 7 days of events. |
|
|
146
|
-
|
|
147
|
-
### Components
|
|
148
|
-
|
|
149
|
-
All components share:
|
|
150
|
-
|
|
151
|
-
* **Override props** for every styling slot
|
|
152
|
-
* **`locale`** (where relevant)
|
|
153
|
-
* **`labels`** object for custom text (e.g. instructor or business-hours labels)
|
|
154
|
-
* **`renderItem`** for full JSX override
|
|
155
|
-
|
|
156
|
-
| Component | Props |
|
|
157
|
-
|---------------------------| --------------------------------------------------------------------------------------------------------------------------------- |
|
|
158
|
-
| `<StudioProfileCard />` | `overrideId?`, `locale?`, `labels?`, `className?`, `nameClassName?`, `descriptionClassName?`, `labelClassName?`, `renderProfile?` |
|
|
159
|
-
| `<UserProfileCard />` | `userId`, `locale?`, `labels?`, `className?`, `nameClassName?`, `bioClassName?`, `renderProfile?` |
|
|
160
|
-
| `<InstructorList />` | `overrideId?`, `renderItem?`, plus styling slots: `className?`, `itemClassName?`, `imageWrapperClassName?`, etc. |
|
|
161
|
-
| `<ClassSchedule />` | `from?`, `overrideId?`, `locale?`, `labels?`, `renderItem?`, plus slots: `className?`, `itemClassName?`, etc. |
|
|
162
|
-
| `<ClassScheduleByType />` | `typeName`, `from?`, `overrideId?`, `locale?`, `labels?`, `renderItem?`, plus same styling slots as `<ClassSchedule />`. |
|
|
163
|
-
| `<EventSchedule />` | `from?`, `overrideId?`, `locale?`, `labels?`, `renderItem?`, plus slots: `className?`, `itemClassName?`, etc. |
|
|
164
|
-
| `<StudioDescription />` | `overrideId?`, `locale?`, `render?`, plus styling slots: `className?`, `paragraphClassName?` |
|
|
165
|
-
|
|
166
|
-
## License
|
|
167
|
-
|
|
168
|
-
ISC
|
|
1
|
+
# @bailaya/react
|
|
2
|
+
|
|
3
|
+
> A React component library and hooks for the BailaYa public API
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
`@bailaya/react` builds on top of **@bailaya/core** to provide:
|
|
8
|
+
|
|
9
|
+
* A **`BailayaProvider`** + **`useBailayaClient`** context
|
|
10
|
+
* React **hooks** for fetching all core data (with `loading`, `error`, `data`, and `refetch`)
|
|
11
|
+
* **Components** with sensible Tailwind defaults (and full styling slots)
|
|
12
|
+
* Full TypeScript support, including localized text & date formatting
|
|
13
|
+
|
|
14
|
+
> Works **with or without Tailwind**. If you don’t use Tailwind, just override the class props (or use the render props) to apply your own styling.
|
|
15
|
+
|
|
16
|
+
## Features
|
|
17
|
+
|
|
18
|
+
* **Context + client** (`BailayaProvider` + `useBailayaClient`)
|
|
19
|
+
* **Hooks** (all return `{ data, error, loading, refetch }`)
|
|
20
|
+
|
|
21
|
+
* `useStudioProfile(overrideId?)`
|
|
22
|
+
* `useUserProfile(userId)`
|
|
23
|
+
* `useInstructors(overrideId?)`
|
|
24
|
+
* `useClasses(from?, overrideId?)`
|
|
25
|
+
* `useClassesByType(typeName, from?, overrideId?)`
|
|
26
|
+
* `useEvents(from?, overrideId?)`
|
|
27
|
+
* **Components** (all props overridable)
|
|
28
|
+
|
|
29
|
+
* `<StudioProfileCard />`
|
|
30
|
+
* `<UserProfileCard />`
|
|
31
|
+
* `<InstructorList />`
|
|
32
|
+
* `<ClassSchedule />`
|
|
33
|
+
* `<ClassScheduleByType />`
|
|
34
|
+
* `<EventSchedule />`
|
|
35
|
+
* `<StudioDescription />`
|
|
36
|
+
|
|
37
|
+
## Installation
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
npm install @bailaya/react
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
or with Yarn:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
yarn add @bailaya/react
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
> **Peer Dependencies**
|
|
50
|
+
>
|
|
51
|
+
> * `"react": ">=17"`
|
|
52
|
+
> * `"react-dom": ">=17"`
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Quick Start
|
|
57
|
+
|
|
58
|
+
First, wrap your app with **BailayaProvider**:
|
|
59
|
+
|
|
60
|
+
```tsx
|
|
61
|
+
// App.tsx
|
|
62
|
+
import React from "react";
|
|
63
|
+
import { BailayaProvider } from "@bailaya/react";
|
|
64
|
+
|
|
65
|
+
export default function App() {
|
|
66
|
+
return (
|
|
67
|
+
<BailayaProvider config={{ studioId: "YOUR_STUDIO_ID" }}>
|
|
68
|
+
{/* ...your app */}
|
|
69
|
+
</BailayaProvider>
|
|
70
|
+
);
|
|
71
|
+
}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Using a Hook
|
|
75
|
+
|
|
76
|
+
```tsx
|
|
77
|
+
import React from "react";
|
|
78
|
+
import { useInstructors } from "@bailaya/react";
|
|
79
|
+
|
|
80
|
+
export function TeamSection() {
|
|
81
|
+
const { data: instructors, loading, error, refetch } = useInstructors();
|
|
82
|
+
|
|
83
|
+
if (loading) return <p>Loading...</p>;
|
|
84
|
+
if (error) return <p>Error: {error.message}</p>;
|
|
85
|
+
|
|
86
|
+
return (
|
|
87
|
+
<>
|
|
88
|
+
<button onClick={refetch}>Refresh</button>
|
|
89
|
+
<ul>
|
|
90
|
+
{instructors?.map((i) => (
|
|
91
|
+
<li key={i.id}>{i.name} {i.lastname}</li>
|
|
92
|
+
))}
|
|
93
|
+
</ul>
|
|
94
|
+
</>
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### Using a Component
|
|
100
|
+
|
|
101
|
+
```tsx
|
|
102
|
+
import React from "react";
|
|
103
|
+
import { StudioProfileCard } from "@bailaya/react";
|
|
104
|
+
|
|
105
|
+
export function Dashboard() {
|
|
106
|
+
return (
|
|
107
|
+
<div className="max-w-md mx-auto">
|
|
108
|
+
<StudioProfileCard locale="en" />
|
|
109
|
+
</div>
|
|
110
|
+
);
|
|
111
|
+
}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## API Reference
|
|
117
|
+
|
|
118
|
+
### `<BailayaProvider config>`
|
|
119
|
+
|
|
120
|
+
Provides `useBailayaClient()` context.
|
|
121
|
+
|
|
122
|
+
* `config.baseUrl?: string` – override default API URL
|
|
123
|
+
* `config.studioId?: string` – default studio ID
|
|
124
|
+
|
|
125
|
+
### Hooks
|
|
126
|
+
|
|
127
|
+
All hooks return:
|
|
128
|
+
|
|
129
|
+
```ts
|
|
130
|
+
{
|
|
131
|
+
data: T | null;
|
|
132
|
+
error: Error | null;
|
|
133
|
+
loading: boolean;
|
|
134
|
+
refetch: () => Promise<void>;
|
|
135
|
+
}
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
| Hook | Description |
|
|
139
|
+
|--------------------------------------------------|--------------------------------------------------------------|
|
|
140
|
+
| `useStudioProfile(overrideId?)` | Fetch a studio’s profile. |
|
|
141
|
+
| `useUserProfile(userId)` | Fetch a user’s profile / bio. |
|
|
142
|
+
| `useInstructors(overrideId?)` | Fetch list of active instructors (owner, admin, instructor). |
|
|
143
|
+
| `useClasses(from?, overrideId?)` | Fetch next 7 days of classes (all types). |
|
|
144
|
+
| `useClassesByType(typeName, from?, overrideId?)` | Fetch next 7 days of classes filtered by `typeName`. |
|
|
145
|
+
| `useEvents(from?, overrideId?)` | Fetch next 7 days of events. |
|
|
146
|
+
|
|
147
|
+
### Components
|
|
148
|
+
|
|
149
|
+
All components share:
|
|
150
|
+
|
|
151
|
+
* **Override props** for every styling slot
|
|
152
|
+
* **`locale`** (where relevant)
|
|
153
|
+
* **`labels`** object for custom text (e.g. instructor or business-hours labels)
|
|
154
|
+
* **`renderItem`** for full JSX override
|
|
155
|
+
|
|
156
|
+
| Component | Props |
|
|
157
|
+
|---------------------------| --------------------------------------------------------------------------------------------------------------------------------- |
|
|
158
|
+
| `<StudioProfileCard />` | `overrideId?`, `locale?`, `labels?`, `className?`, `nameClassName?`, `descriptionClassName?`, `labelClassName?`, `renderProfile?` |
|
|
159
|
+
| `<UserProfileCard />` | `userId`, `locale?`, `labels?`, `className?`, `nameClassName?`, `bioClassName?`, `renderProfile?` |
|
|
160
|
+
| `<InstructorList />` | `overrideId?`, `renderItem?`, plus styling slots: `className?`, `itemClassName?`, `imageWrapperClassName?`, etc. |
|
|
161
|
+
| `<ClassSchedule />` | `from?`, `overrideId?`, `locale?`, `labels?`, `renderItem?`, plus slots: `className?`, `itemClassName?`, etc. |
|
|
162
|
+
| `<ClassScheduleByType />` | `typeName`, `from?`, `overrideId?`, `locale?`, `labels?`, `renderItem?`, plus same styling slots as `<ClassSchedule />`. |
|
|
163
|
+
| `<EventSchedule />` | `from?`, `overrideId?`, `locale?`, `labels?`, `renderItem?`, plus slots: `className?`, `itemClassName?`, etc. |
|
|
164
|
+
| `<StudioDescription />` | `overrideId?`, `locale?`, `render?`, plus styling slots: `className?`, `paragraphClassName?` |
|
|
165
|
+
|
|
166
|
+
## License
|
|
167
|
+
|
|
168
|
+
ISC
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClassSchedule.d.ts","sourceRoot":"","sources":["../../src/components/ClassSchedule.tsx"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"ClassSchedule.d.ts","sourceRoot":"","sources":["../../src/components/ClassSchedule.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAKjD,MAAM,WAAW,kBAAkB;IAC/B,kEAAkE;IAClE,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6FAA6F;IAC7F,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0FAA0F;IAC1F,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,kDAAkD;IAClD,MAAM,CAAC,EAAE;QACL,oEAAoE;QACpE,UAAU,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IAEF,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6CAA6C;IAC7C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4BAA4B;IAC5B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,0CAA0C;IAC1C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yBAAyB;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iCAAiC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kCAAkC;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,8BAA8B;IAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,8CAA8C;IAC9C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qBAAqB;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,oDAAoD;IACpD,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,KAAK,MAAM,CAAC;IAE1D;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;KAC7B,KAAK,KAAK,CAAC,SAAS,CAAC;IAEtB,iDAAiD;IACjD,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,KAAK,CAAC,SAAS,CAAC;CACtD;AAED;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAkJtD,CAAC"}
|
|
@@ -1,14 +1,45 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
"use client";
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
+
}) : function(o, v) {
|
|
17
|
+
o["default"] = v;
|
|
18
|
+
});
|
|
19
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
+
var ownKeys = function(o) {
|
|
21
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
+
var ar = [];
|
|
23
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
+
return ar;
|
|
25
|
+
};
|
|
26
|
+
return ownKeys(o);
|
|
27
|
+
};
|
|
28
|
+
return function (mod) {
|
|
29
|
+
if (mod && mod.__esModule) return mod;
|
|
30
|
+
var result = {};
|
|
31
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
+
__setModuleDefault(result, mod);
|
|
33
|
+
return result;
|
|
34
|
+
};
|
|
35
|
+
})();
|
|
6
36
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
37
|
exports.ClassSchedule = void 0;
|
|
8
|
-
const react_1 =
|
|
38
|
+
const react_1 = __importStar(require("react"));
|
|
9
39
|
const useClasses_1 = require("../hooks/useClasses");
|
|
10
40
|
const LoadingIcon_1 = require("./ui/LoadingIcon");
|
|
11
41
|
const utils_1 = require("../lib/utils");
|
|
42
|
+
const useStudioProfile_1 = require("../hooks/useStudioProfile");
|
|
12
43
|
/**
|
|
13
44
|
* Displays an upcoming-class schedule for a studio:
|
|
14
45
|
* - name + level
|
|
@@ -19,12 +50,17 @@ const utils_1 = require("../lib/utils");
|
|
|
19
50
|
const ClassSchedule = ({ from, overrideId, locale, currency, labels = {}, className = "by-scheduleList", itemClassName = "by-scheduleItem", rowClassName = "by-scheduleRow", imageClassName = "by-scheduleImage", imageWrapperClassName = "by-scheduleImageWrapper", leftClassName = "by-scheduleLeft", nameClassName = "by-scheduleName", levelClassName = "by-scheduleLevel", detailsClassName = "by-scheduleMeta", instructorClassName = "by-scheduleInstructor", rightClassName = "by-scheduleRight", priceClassName = "by-schedulePrice", buttonClassName = "by-btn by-btnBook", bookNowText = "Book This Class", bookBaseUrl = "https://www.bailaya.com/book/", hideBookButton = false, formatPrice, renderLink, renderItem, }) => {
|
|
20
51
|
var _a;
|
|
21
52
|
const { data: classes, loading, error } = (0, useClasses_1.useClasses)(from, overrideId);
|
|
22
|
-
const
|
|
23
|
-
const
|
|
53
|
+
const { data: studio } = (0, useStudioProfile_1.useStudioProfile)(overrideId);
|
|
54
|
+
const studioTz = (studio === null || studio === void 0 ? void 0 : studio.timezone) || "UTC";
|
|
55
|
+
const weekdayFmt = (0, react_1.useMemo)(() => new Intl.DateTimeFormat(locale !== null && locale !== void 0 ? locale : "en", {
|
|
56
|
+
weekday: "long",
|
|
57
|
+
timeZone: studioTz, // ✅ studio tz
|
|
58
|
+
}), [locale, studioTz]);
|
|
59
|
+
const dateFmt = (0, react_1.useMemo)(() => new Intl.DateTimeFormat(locale !== null && locale !== void 0 ? locale : "en", {
|
|
24
60
|
month: "short",
|
|
25
61
|
day: "numeric",
|
|
26
|
-
timeZone:
|
|
27
|
-
});
|
|
62
|
+
timeZone: studioTz,
|
|
63
|
+
}), [locale, studioTz]);
|
|
28
64
|
const instructorLabel = (_a = labels === null || labels === void 0 ? void 0 : labels.instructor) !== null && _a !== void 0 ? _a : "Instructor:";
|
|
29
65
|
if (loading) {
|
|
30
66
|
return (react_1.default.createElement("ul", { className: className },
|
|
@@ -74,7 +110,7 @@ const ClassSchedule = ({ from, overrideId, locale, currency, labels = {}, classN
|
|
|
74
110
|
cls.instructor.name,
|
|
75
111
|
cls.instructor.lastname ? ` ${cls.instructor.lastname}` : "")))),
|
|
76
112
|
react_1.default.createElement("div", { className: rightClassName },
|
|
77
|
-
Number.isFinite(cls.price) && (react_1.default.createElement("div", { className: priceClassName }, priceText)),
|
|
113
|
+
Number.isFinite(cls.price) && cls.price > 0.0 && (react_1.default.createElement("div", { className: priceClassName }, priceText)),
|
|
78
114
|
!hideBookButton &&
|
|
79
115
|
(renderLink ? (renderLink({
|
|
80
116
|
href,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClassScheduleByType.d.ts","sourceRoot":"","sources":["../../src/components/ClassScheduleByType.tsx"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"ClassScheduleByType.d.ts","sourceRoot":"","sources":["../../src/components/ClassScheduleByType.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAIjD,MAAM,WAAW,wBAAwB;IACrC,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAC;IAEjB,kEAAkE;IAClE,IAAI,CAAC,EAAE,IAAI,CAAC;IAEZ,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,6FAA6F;IAC7F,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,0FAA0F;IAC1F,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,oBAAoB;IACpB,MAAM,CAAC,EAAE;QACL,oEAAoE;QACpE,UAAU,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IAEF,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6CAA6C;IAC7C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4BAA4B;IAC5B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,0CAA0C;IAC1C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yBAAyB;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yDAAyD;IACzD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kCAAkC;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,8BAA8B;IAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,8CAA8C;IAC9C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qBAAqB;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,oDAAoD;IACpD,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,oDAAoD;IACpD,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,KAAK,MAAM,CAAC;IAE1D;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;KAC7B,KAAK,KAAK,CAAC,SAAS,CAAC;IAEtB;;OAEG;IACH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,KAAK,CAAC,SAAS,CAAC;CACtD;AAED;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAwJlE,CAAC"}
|
|
@@ -1,13 +1,44 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
"use client";
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
+
}) : function(o, v) {
|
|
17
|
+
o["default"] = v;
|
|
18
|
+
});
|
|
19
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
+
var ownKeys = function(o) {
|
|
21
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
+
var ar = [];
|
|
23
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
+
return ar;
|
|
25
|
+
};
|
|
26
|
+
return ownKeys(o);
|
|
27
|
+
};
|
|
28
|
+
return function (mod) {
|
|
29
|
+
if (mod && mod.__esModule) return mod;
|
|
30
|
+
var result = {};
|
|
31
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
+
__setModuleDefault(result, mod);
|
|
33
|
+
return result;
|
|
34
|
+
};
|
|
35
|
+
})();
|
|
6
36
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
37
|
exports.ClassScheduleByType = void 0;
|
|
8
|
-
const react_1 =
|
|
38
|
+
const react_1 = __importStar(require("react"));
|
|
9
39
|
const useClassesByType_1 = require("../hooks/useClassesByType");
|
|
10
40
|
const utils_1 = require("../lib/utils");
|
|
41
|
+
const useStudioProfile_1 = require("../hooks/useStudioProfile");
|
|
11
42
|
/**
|
|
12
43
|
* Displays a schedule of upcoming classes of a specific dance type:
|
|
13
44
|
* - name + level
|
|
@@ -18,35 +49,36 @@ const utils_1 = require("../lib/utils");
|
|
|
18
49
|
const ClassScheduleByType = ({ typeName, from, overrideId, locale, currency, labels = {}, className = "by-scheduleList", itemClassName = "by-scheduleItem", rowClassName = "by-scheduleRow", imageClassName = "by-scheduleImage", imageWrapperClassName = "by-scheduleImageWrapper", leftClassName = "by-scheduleLeft", nameClassName = "by-scheduleName", levelClassName = "by-scheduleLevel", detailsClassName = "by-scheduleMeta", instructorClassName = "by-scheduleInstructor", rightClassName = "by-scheduleRight", priceClassName = "by-schedulePrice", buttonClassName = "by-btn by-btnBook", bookNowText = "Book This Class", bookBaseUrl = "https://www.bailaya.com/book/", hideBookButton = false, formatPrice, renderLink, renderItem, }) => {
|
|
19
50
|
var _a;
|
|
20
51
|
const { data: classes, loading, error } = (0, useClassesByType_1.useClassesByType)(typeName, from, overrideId);
|
|
21
|
-
const
|
|
52
|
+
const { data: studio } = (0, useStudioProfile_1.useStudioProfile)(overrideId);
|
|
53
|
+
const studioTz = (studio === null || studio === void 0 ? void 0 : studio.timezone) || "UTC";
|
|
54
|
+
const weekdayFmt = (0, react_1.useMemo)(() => new Intl.DateTimeFormat(locale !== null && locale !== void 0 ? locale : "en", {
|
|
22
55
|
weekday: "long",
|
|
23
|
-
timeZone:
|
|
24
|
-
});
|
|
25
|
-
const dateFmt = new Intl.DateTimeFormat(locale !== null && locale !== void 0 ? locale : "en", {
|
|
56
|
+
timeZone: studioTz,
|
|
57
|
+
}), [locale, studioTz]);
|
|
58
|
+
const dateFmt = (0, react_1.useMemo)(() => new Intl.DateTimeFormat(locale !== null && locale !== void 0 ? locale : "en", {
|
|
26
59
|
month: "short",
|
|
27
60
|
day: "numeric",
|
|
28
|
-
timeZone:
|
|
29
|
-
});
|
|
61
|
+
timeZone: studioTz,
|
|
62
|
+
}), [locale, studioTz]);
|
|
30
63
|
const instructorLabel = (_a = labels === null || labels === void 0 ? void 0 : labels.instructor) !== null && _a !== void 0 ? _a : "Instructor:";
|
|
31
64
|
if (loading) {
|
|
32
|
-
return react_1.default.createElement("ul", { className: className },
|
|
65
|
+
return (react_1.default.createElement("ul", { className: className },
|
|
33
66
|
react_1.default.createElement("li", null,
|
|
34
67
|
"Loading ",
|
|
35
68
|
typeName,
|
|
36
|
-
" classes..."));
|
|
69
|
+
" classes...")));
|
|
37
70
|
}
|
|
38
71
|
if (error) {
|
|
39
|
-
return react_1.default.createElement("ul", { className: className },
|
|
72
|
+
return (react_1.default.createElement("ul", { className: className },
|
|
40
73
|
react_1.default.createElement("li", null,
|
|
41
74
|
"Error: ",
|
|
42
|
-
error.message));
|
|
75
|
+
error.message)));
|
|
43
76
|
}
|
|
44
77
|
return (react_1.default.createElement("ul", { className: className }, classes === null || classes === void 0 ? void 0 : classes.map((cls) => {
|
|
45
78
|
var _a;
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
const dateStr = dateFmt.format(dateObj);
|
|
79
|
+
const dayName = weekdayFmt.format(cls.date).charAt(0).toUpperCase() +
|
|
80
|
+
weekdayFmt.format(cls.date).slice(1);
|
|
81
|
+
const shortDate = dateFmt.format(cls.date);
|
|
50
82
|
if (renderItem) {
|
|
51
83
|
return react_1.default.createElement("li", { key: cls.id }, renderItem(cls));
|
|
52
84
|
}
|
|
@@ -67,9 +99,9 @@ const ClassScheduleByType = ({ typeName, from, overrideId, locale, currency, lab
|
|
|
67
99
|
(0, utils_1.localizeLevel)(cls.level, locale),
|
|
68
100
|
")")),
|
|
69
101
|
react_1.default.createElement("div", { className: detailsClassName },
|
|
70
|
-
|
|
102
|
+
dayName,
|
|
71
103
|
", ",
|
|
72
|
-
|
|
104
|
+
shortDate,
|
|
73
105
|
" \u2014 ",
|
|
74
106
|
cls.startTime,
|
|
75
107
|
"\u2013",
|
|
@@ -79,11 +111,9 @@ const ClassScheduleByType = ({ typeName, from, overrideId, locale, currency, lab
|
|
|
79
111
|
" ",
|
|
80
112
|
react_1.default.createElement("strong", null,
|
|
81
113
|
cls.instructor.name,
|
|
82
|
-
cls.instructor.lastname
|
|
83
|
-
? ` ${cls.instructor.lastname}`
|
|
84
|
-
: "")))),
|
|
114
|
+
cls.instructor.lastname ? ` ${cls.instructor.lastname}` : "")))),
|
|
85
115
|
react_1.default.createElement("div", { className: rightClassName },
|
|
86
|
-
Number.isFinite(cls.price) && (react_1.default.createElement("div", { className: priceClassName }, priceText)),
|
|
116
|
+
Number.isFinite(cls.price) && cls.price > 0.0 && (react_1.default.createElement("div", { className: priceClassName }, priceText)),
|
|
87
117
|
!hideBookButton &&
|
|
88
118
|
(renderLink ? (renderLink({
|
|
89
119
|
href,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventSchedule.d.ts","sourceRoot":"","sources":["../../src/components/EventSchedule.tsx"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"EventSchedule.d.ts","sourceRoot":"","sources":["../../src/components/EventSchedule.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAKjD,MAAM,WAAW,kBAAkB;IAC/B,kEAAkE;IAClE,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6FAA6F;IAC7F,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0FAA0F;IAC1F,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,4CAA4C;IAC5C,MAAM,CAAC,EAAE;QACL,8DAA8D;QAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IAEF,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6CAA6C;IAC7C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4BAA4B;IAC5B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,0CAA0C;IAC1C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yBAAyB;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iCAAiC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kCAAkC;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,wBAAwB;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8CAA8C;IAC9C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qBAAqB;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,oDAAoD;IACpD,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,KAAK,MAAM,CAAC;IAE1D;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;KAC7B,KAAK,KAAK,CAAC,SAAS,CAAC;IAEtB,iDAAiD;IACjD,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,KAAK,CAAC,SAAS,CAAC;CACtD;AAED;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAsJtD,CAAC"}
|
|
@@ -1,14 +1,45 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
"use client";
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
+
}) : function(o, v) {
|
|
17
|
+
o["default"] = v;
|
|
18
|
+
});
|
|
19
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
+
var ownKeys = function(o) {
|
|
21
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
+
var ar = [];
|
|
23
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
+
return ar;
|
|
25
|
+
};
|
|
26
|
+
return ownKeys(o);
|
|
27
|
+
};
|
|
28
|
+
return function (mod) {
|
|
29
|
+
if (mod && mod.__esModule) return mod;
|
|
30
|
+
var result = {};
|
|
31
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
+
__setModuleDefault(result, mod);
|
|
33
|
+
return result;
|
|
34
|
+
};
|
|
35
|
+
})();
|
|
6
36
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
37
|
exports.EventSchedule = void 0;
|
|
8
|
-
const react_1 =
|
|
38
|
+
const react_1 = __importStar(require("react"));
|
|
9
39
|
const useEvents_1 = require("../hooks/useEvents");
|
|
10
40
|
const LoadingIcon_1 = require("./ui/LoadingIcon");
|
|
11
41
|
const utils_1 = require("../lib/utils");
|
|
42
|
+
const useStudioProfile_1 = require("../hooks/useStudioProfile");
|
|
12
43
|
/**
|
|
13
44
|
* Displays an upcoming-event schedule for a studio:
|
|
14
45
|
* - name + level
|
|
@@ -16,17 +47,22 @@ const utils_1 = require("../lib/utils");
|
|
|
16
47
|
* - optional instructor
|
|
17
48
|
* - RIGHT: price + "Book This Event" CTA
|
|
18
49
|
*/
|
|
19
|
-
const EventSchedule = ({ from, overrideId, locale, currency, labels = {}, className = "by-scheduleList", itemClassName = "by-scheduleItem", rowClassName = "by-scheduleRow", imageClassName = "by-scheduleImage", imageWrapperClassName = "by-scheduleImageWrapper", leftClassName = "by-scheduleLeft", nameClassName = "by-scheduleName", levelClassName = "by-scheduleLevel", detailsClassName = "by-scheduleMeta", hostClassName = "by-scheduleInstructor", rightClassName = "by-scheduleRight", priceClassName = "by-schedulePrice", buttonClassName = "by-btn by-btnBook", bookNowText = "Book This
|
|
50
|
+
const EventSchedule = ({ from, overrideId, locale, currency, labels = {}, className = "by-scheduleList", itemClassName = "by-scheduleItem", rowClassName = "by-scheduleRow", imageClassName = "by-scheduleImage", imageWrapperClassName = "by-scheduleImageWrapper", leftClassName = "by-scheduleLeft", nameClassName = "by-scheduleName", levelClassName = "by-scheduleLevel", detailsClassName = "by-scheduleMeta", hostClassName = "by-scheduleInstructor", rightClassName = "by-scheduleRight", priceClassName = "by-schedulePrice", buttonClassName = "by-btn by-btnBook", bookNowText = "Book This Event", bookBaseUrl = "https://www.bailaya.com/book/", hideBookButton = false, formatPrice, renderLink, renderItem, }) => {
|
|
20
51
|
var _a;
|
|
21
52
|
const { data: events, loading, error } = (0, useEvents_1.useEvents)(from, overrideId);
|
|
22
|
-
const
|
|
23
|
-
const
|
|
53
|
+
const { data: studio } = (0, useStudioProfile_1.useStudioProfile)(overrideId);
|
|
54
|
+
const studioTz = (studio === null || studio === void 0 ? void 0 : studio.timezone) || "UTC";
|
|
55
|
+
const weekdayFmt = (0, react_1.useMemo)(() => new Intl.DateTimeFormat(locale !== null && locale !== void 0 ? locale : "en", {
|
|
56
|
+
weekday: "long",
|
|
57
|
+
timeZone: studioTz,
|
|
58
|
+
}), [locale, studioTz]);
|
|
59
|
+
const dateFmt = (0, react_1.useMemo)(() => new Intl.DateTimeFormat(locale !== null && locale !== void 0 ? locale : "en", {
|
|
24
60
|
month: "short",
|
|
25
61
|
day: "numeric",
|
|
26
|
-
timeZone:
|
|
27
|
-
});
|
|
28
|
-
const
|
|
29
|
-
const hostLabel = (_a = labels === null || labels === void 0 ? void 0 : labels.host) !== null && _a !== void 0 ? _a :
|
|
62
|
+
timeZone: studioTz,
|
|
63
|
+
}), [locale, studioTz]);
|
|
64
|
+
const hostDefaultLabel = locale === "es" ? "Anfitrión:" : "Host:";
|
|
65
|
+
const hostLabel = (_a = labels === null || labels === void 0 ? void 0 : labels.host) !== null && _a !== void 0 ? _a : hostDefaultLabel;
|
|
30
66
|
if (loading) {
|
|
31
67
|
return (react_1.default.createElement("ul", { className: className },
|
|
32
68
|
react_1.default.createElement("li", null,
|
|
@@ -75,7 +111,7 @@ const EventSchedule = ({ from, overrideId, locale, currency, labels = {}, classN
|
|
|
75
111
|
evt.host.name,
|
|
76
112
|
evt.host.lastname ? ` ${evt.host.lastname}` : "")))),
|
|
77
113
|
react_1.default.createElement("div", { className: rightClassName },
|
|
78
|
-
Number.isFinite(evt.price) && (react_1.default.createElement("div", { className: priceClassName }, priceText)),
|
|
114
|
+
Number.isFinite(evt.price) && evt.price > 0.0 && (react_1.default.createElement("div", { className: priceClassName }, priceText)),
|
|
79
115
|
!hideBookButton &&
|
|
80
116
|
(renderLink ? (renderLink({
|
|
81
117
|
href,
|
package/package.json
CHANGED
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@bailaya/react",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "A React component library for the BailaYa public API",
|
|
5
|
-
"main": "dist/index.js",
|
|
6
|
-
"types": "dist/index.d.ts",
|
|
7
|
-
"exports": {
|
|
8
|
-
".": "./dist/index.js",
|
|
9
|
-
"./styles.css": "./dist/styles.css"
|
|
10
|
-
},
|
|
11
|
-
"files": [
|
|
12
|
-
"dist"
|
|
13
|
-
],
|
|
14
|
-
"scripts": {
|
|
15
|
-
"build": "tsc --build && npm run copy:css",
|
|
16
|
-
"copy:css": "copyfiles -u 1 \"src/**/*.css\" dist",
|
|
17
|
-
"test": "jest"
|
|
18
|
-
},
|
|
19
|
-
"peerDependencies": {
|
|
20
|
-
"react": ">=17.0.0 <20.0.0",
|
|
21
|
-
"react-dom": ">=17.0.0 <20.0.0"
|
|
22
|
-
},
|
|
23
|
-
"devDependencies": {
|
|
24
|
-
"@types/jest": "^30.0.0",
|
|
25
|
-
"@types/react": "^18.0.0",
|
|
26
|
-
"@types/react-dom": "^18.0.0",
|
|
27
|
-
"copyfiles": "^2.4.1",
|
|
28
|
-
"jest": "^30.0.5",
|
|
29
|
-
"react": "^18.2.0",
|
|
30
|
-
"react-dom": "^18.2.0",
|
|
31
|
-
"ts-jest": "^29.4.0",
|
|
32
|
-
"typescript": "^5.8.3"
|
|
33
|
-
},
|
|
34
|
-
"dependencies": {
|
|
35
|
-
"@bailaya/core": "^1.0.
|
|
36
|
-
"lucide-react": "^0.536.0"
|
|
37
|
-
},
|
|
38
|
-
"license": "ISC"
|
|
39
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@bailaya/react",
|
|
3
|
+
"version": "1.0.40",
|
|
4
|
+
"description": "A React component library for the BailaYa public API",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": "./dist/index.js",
|
|
9
|
+
"./styles.css": "./dist/styles.css"
|
|
10
|
+
},
|
|
11
|
+
"files": [
|
|
12
|
+
"dist"
|
|
13
|
+
],
|
|
14
|
+
"scripts": {
|
|
15
|
+
"build": "tsc --build && npm run copy:css",
|
|
16
|
+
"copy:css": "copyfiles -u 1 \"src/**/*.css\" dist",
|
|
17
|
+
"test": "jest"
|
|
18
|
+
},
|
|
19
|
+
"peerDependencies": {
|
|
20
|
+
"react": ">=17.0.0 <20.0.0",
|
|
21
|
+
"react-dom": ">=17.0.0 <20.0.0"
|
|
22
|
+
},
|
|
23
|
+
"devDependencies": {
|
|
24
|
+
"@types/jest": "^30.0.0",
|
|
25
|
+
"@types/react": "^18.0.0",
|
|
26
|
+
"@types/react-dom": "^18.0.0",
|
|
27
|
+
"copyfiles": "^2.4.1",
|
|
28
|
+
"jest": "^30.0.5",
|
|
29
|
+
"react": "^18.2.0",
|
|
30
|
+
"react-dom": "^18.2.0",
|
|
31
|
+
"ts-jest": "^29.4.0",
|
|
32
|
+
"typescript": "^5.8.3"
|
|
33
|
+
},
|
|
34
|
+
"dependencies": {
|
|
35
|
+
"@bailaya/core": "^1.0.10",
|
|
36
|
+
"lucide-react": "^0.536.0"
|
|
37
|
+
},
|
|
38
|
+
"license": "ISC"
|
|
39
|
+
}
|