Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,4 @@ npm-debug.log
coverage
test-results/
playwright-report/
.vscode
1 change: 1 addition & 0 deletions index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ interface TSMLReactConfig {
type: MeetingType[];
view: 'table' | 'map';
weekday: TSMLReactConfig['weekdays'];
duration: number;
};
distance_options: number[];
distance_unit: 'mi' | 'km';
Expand Down
2 changes: 1 addition & 1 deletion public/app.js

Large diffs are not rendered by default.

9 changes: 5 additions & 4 deletions public/tests/aasfmarin.html
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,11 @@
</head>

<body>
<meetings
src="https://sheets.code4recovery.org/storage/aasfmarin.json"
mapbox="pk.eyJ1IjoiYWFzZi1tcGFsIiwiYSI6ImNqaHl6NHY0NzByemszcHBkcHpib296OHkifQ.F7GfpF1jRosyQ0PGNUfDkA"
/>
<div
id="tsml-ui"
data-src="https://sheets.code4recovery.org/storage/aasfmarin.json"
data-mapbox="pk.eyJ1IjoiYWFzZi1tcGFsIiwiYSI6ImNqaHl6NHY0NzByemszcHBkcHpib296OHkifQ.F7GfpF1jRosyQ0PGNUfDkA"
></div>
<script>
var tsml_react_config = {
'conference_providers': {
Expand Down
34 changes: 19 additions & 15 deletions src/helpers/data/load-meeting-data.js
Original file line number Diff line number Diff line change
Expand Up @@ -277,23 +277,27 @@ export function loadMeetingData(data, capabilities, timezone) {
{ weekday, hour: endTimeParts[0], minute: endTimeParts[1] },
{ zone: meeting.timezone }
);
} else {
meeting.end = meeting.start.plus({
minutes: settings.defaults.duration,
});
}

//check valid end time
if (!meeting.end.isValid) {
console.warn(
`TSML UI invalid end time (${meeting.end.invalid.explanation}): ${meeting.edit_url}`
);
return;
}
//check valid end time
if (!meeting.end.isValid) {
console.warn(
`TSML UI invalid end time (${meeting.end.invalid.explanation}): ${meeting.edit_url}`
);
return;
}

const duration = meeting.end
.diff(meeting.start, 'minutes')
.toObject().minutes;
if (duration > 120) {
console.warn(
`TSML UI ${meeting.slug} is unusually long (${duration} mins): ${meeting.edit_url}`
);
}
const duration = meeting.end
.diff(meeting.start, 'minutes')
.toObject().minutes;
if (duration > 120) {
console.warn(
`TSML UI ${meeting.slug} is unusually long (${duration} mins): ${meeting.edit_url}`
);
}

//normalize timezones
Expand Down
1 change: 1 addition & 0 deletions src/helpers/format/format-ics.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import { Meeting } from '../../types';
const mockMeeting = {
name: 'Foo Meeting',
start: DateTime.fromISO('2022-01-01T00:00:00.000Z'),
end: DateTime.fromISO('2022-01-01T01:00:00.000Z'),
timezone: 'America/New_York',
} as Meeting;

Expand Down
7 changes: 1 addition & 6 deletions src/helpers/format/format-ics.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,7 @@ import { iOS } from '../user-agent';
export function formatIcs(meeting: Meeting) {
const fmt = "yyyyLLdd'T'HHmmss";

if (!meeting.start) return;

//need an end time. guess one hour if none specified
if (!meeting.end) {
meeting.end = meeting.start.plus({ hour: 1 });
}
if (!meeting.start || !meeting.end) return;

//make sure it's in the future
if (meeting.start < DateTime.now()) {
Expand Down
1 change: 1 addition & 0 deletions src/helpers/settings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ const defaults: TSMLReactConfig = {
type: [],
view: 'table',
weekday: [],
duration: 60,
},
distance_options: [1, 2, 5, 10, 15, 25],
distance_unit: 'mi', //mi or km
Expand Down