@sprucelabs/spruce-calendar-components 39.0.5 → 39.0.7

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.
@@ -8,6 +8,7 @@ export default class VenueSelectionToolViewController extends AbstractViewContro
8
8
  private updateContextHandler;
9
9
  private getContext;
10
10
  private isLoaded;
11
+ shouldPersistContextChangesImmediately: boolean;
11
12
  constructor(options: ViewControllerOptions & CalendarToolOptions);
12
13
  private VenueListVc;
13
14
  private handleSelectVenueFromList;
@@ -12,6 +12,7 @@ class VenueSelectionToolViewController extends AbstractViewController {
12
12
  constructor(options) {
13
13
  super(options);
14
14
  this.isLoaded = false;
15
+ this.shouldPersistContextChangesImmediately = true;
15
16
  const { getContext, updateContext } = options;
16
17
  this.getContext = getContext;
17
18
  this.updateContextHandler = updateContext;
@@ -2,7 +2,7 @@ import { AbstractViewController, ViewControllerOptions, List, ListViewController
2
2
  import { Venue } from '../types/calendar.types';
3
3
  export default class VenueListViewController extends AbstractViewController<List> implements VenueList {
4
4
  static id: string;
5
- protected listVc: ListViewController;
5
+ protected venueListVc: ListViewController;
6
6
  private venues;
7
7
  protected onSelectHandler?: SelectVenueHandler;
8
8
  private router?;
@@ -20,7 +20,7 @@ export default class VenueListViewController extends AbstractViewController<List
20
20
  private isSelected;
21
21
  private renderCheckboxCell;
22
22
  private handleOnClickJoinUrl;
23
- private handleClickedCheckbox;
23
+ private handleClickVenue;
24
24
  render(): List;
25
25
  }
26
26
  export interface VenueListLoadOptions {
@@ -16,7 +16,7 @@ class VenueListViewController extends AbstractViewController {
16
16
  const { router, onSelect } = options;
17
17
  this.onSelectHandler = onSelect;
18
18
  this.router = router;
19
- this.listVc = this.ListVc();
19
+ this.venueListVc = this.ListVc();
20
20
  }
21
21
  ListVc() {
22
22
  return this.Controller('list', {
@@ -60,7 +60,7 @@ class VenueListViewController extends AbstractViewController {
60
60
  rows.push(this.renderDetailsRow());
61
61
  }
62
62
  });
63
- this.listVc.setRows(rows);
63
+ this.venueListVc.setRows(rows);
64
64
  }
65
65
  renderDetailsRow() {
66
66
  var _a;
@@ -83,6 +83,9 @@ class VenueListViewController extends AbstractViewController {
83
83
  this.renderVenueLabelCell(venue),
84
84
  this.optionallyRenderJoinUrlCell(venue),
85
85
  ].filter(Boolean),
86
+ onClick: () => __awaiter(this, void 0, void 0, function* () {
87
+ yield this.handleClickVenue(venue);
88
+ }),
86
89
  };
87
90
  }
88
91
  renderVenueLabelCell(venue) {
@@ -118,7 +121,7 @@ class VenueListViewController extends AbstractViewController {
118
121
  value: this.isSelected(venue),
119
122
  onChange: (value) => __awaiter(this, void 0, void 0, function* () {
120
123
  if (value) {
121
- yield this.handleClickedCheckbox(venue);
124
+ yield this.handleClickVenue(venue);
122
125
  }
123
126
  }),
124
127
  },
@@ -130,22 +133,17 @@ class VenueListViewController extends AbstractViewController {
130
133
  yield ((_a = this.router) === null || _a === void 0 ? void 0 : _a.redirect(joinUrl));
131
134
  });
132
135
  }
133
- handleClickedCheckbox(venue) {
136
+ handleClickVenue(venue) {
134
137
  return __awaiter(this, void 0, void 0, function* () {
135
138
  var _a;
136
- this.venues.forEach((v) => __awaiter(this, void 0, void 0, function* () {
137
- if (v.provider === venue.provider) {
138
- return;
139
- }
140
- yield this.listVc.setValue(v.provider, 'isSelected', false);
141
- }));
139
+ yield this.selectVenue(venue);
142
140
  yield ((_a = this.onSelectHandler) === null || _a === void 0 ? void 0 : _a.call(this, venue));
143
141
  });
144
142
  }
145
143
  render() {
146
144
  return (this.venues.length === 0 && this.isLoaded
147
145
  ? null
148
- : this.listVc.render());
146
+ : this.venueListVc.render());
149
147
  }
150
148
  }
151
149
  VenueListViewController.id = 'venue-list';
@@ -8,6 +8,7 @@ export default class VenueSelectionToolViewController extends AbstractViewContro
8
8
  private updateContextHandler;
9
9
  private getContext;
10
10
  private isLoaded;
11
+ shouldPersistContextChangesImmediately: boolean;
11
12
  constructor(options: ViewControllerOptions & CalendarToolOptions);
12
13
  private VenueListVc;
13
14
  private handleSelectVenueFromList;
@@ -5,6 +5,7 @@ class VenueSelectionToolViewController extends heartwood_view_controllers_1.Abst
5
5
  constructor(options) {
6
6
  super(options);
7
7
  this.isLoaded = false;
8
+ this.shouldPersistContextChangesImmediately = true;
8
9
  const { getContext, updateContext } = options;
9
10
  this.getContext = getContext;
10
11
  this.updateContextHandler = updateContext;
@@ -2,7 +2,7 @@ import { AbstractViewController, ViewControllerOptions, List, ListViewController
2
2
  import { Venue } from '../types/calendar.types';
3
3
  export default class VenueListViewController extends AbstractViewController<List> implements VenueList {
4
4
  static id: string;
5
- protected listVc: ListViewController;
5
+ protected venueListVc: ListViewController;
6
6
  private venues;
7
7
  protected onSelectHandler?: SelectVenueHandler;
8
8
  private router?;
@@ -20,7 +20,7 @@ export default class VenueListViewController extends AbstractViewController<List
20
20
  private isSelected;
21
21
  private renderCheckboxCell;
22
22
  private handleOnClickJoinUrl;
23
- private handleClickedCheckbox;
23
+ private handleClickVenue;
24
24
  render(): List;
25
25
  }
26
26
  export interface VenueListLoadOptions {
@@ -9,7 +9,7 @@ class VenueListViewController extends heartwood_view_controllers_1.AbstractViewC
9
9
  const { router, onSelect } = options;
10
10
  this.onSelectHandler = onSelect;
11
11
  this.router = router;
12
- this.listVc = this.ListVc();
12
+ this.venueListVc = this.ListVc();
13
13
  }
14
14
  ListVc() {
15
15
  return this.Controller('list', {
@@ -50,7 +50,7 @@ class VenueListViewController extends heartwood_view_controllers_1.AbstractViewC
50
50
  rows.push(this.renderDetailsRow());
51
51
  }
52
52
  });
53
- this.listVc.setRows(rows);
53
+ this.venueListVc.setRows(rows);
54
54
  }
55
55
  renderDetailsRow() {
56
56
  return {
@@ -72,6 +72,9 @@ class VenueListViewController extends heartwood_view_controllers_1.AbstractViewC
72
72
  this.renderVenueLabelCell(venue),
73
73
  this.optionallyRenderJoinUrlCell(venue),
74
74
  ].filter(Boolean),
75
+ onClick: async () => {
76
+ await this.handleClickVenue(venue);
77
+ },
75
78
  };
76
79
  }
77
80
  renderVenueLabelCell(venue) {
@@ -103,7 +106,7 @@ class VenueListViewController extends heartwood_view_controllers_1.AbstractViewC
103
106
  value: this.isSelected(venue),
104
107
  onChange: async (value) => {
105
108
  if (value) {
106
- await this.handleClickedCheckbox(venue);
109
+ await this.handleClickVenue(venue);
107
110
  }
108
111
  },
109
112
  },
@@ -112,19 +115,14 @@ class VenueListViewController extends heartwood_view_controllers_1.AbstractViewC
112
115
  async handleOnClickJoinUrl(joinUrl) {
113
116
  await this.router?.redirect(joinUrl);
114
117
  }
115
- async handleClickedCheckbox(venue) {
116
- this.venues.forEach(async (v) => {
117
- if (v.provider === venue.provider) {
118
- return;
119
- }
120
- await this.listVc.setValue(v.provider, 'isSelected', false);
121
- });
118
+ async handleClickVenue(venue) {
119
+ await this.selectVenue(venue);
122
120
  await this.onSelectHandler?.(venue);
123
121
  }
124
122
  render() {
125
123
  return (this.venues.length === 0 && this.isLoaded
126
124
  ? null
127
- : this.listVc.render());
125
+ : this.venueListVc.render());
128
126
  }
129
127
  }
130
128
  VenueListViewController.id = 'venue-list';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sprucelabs/spruce-calendar-components",
3
3
  "description": "Calendar components for working with calendars and Sprucebot.",
4
- "version": "39.0.5",
4
+ "version": "39.0.7",
5
5
  "skill": {
6
6
  "namespace": "calendar"
7
7
  },