Skip to content

Commit d06d75f

Browse files
authored
feat: add support for weekday=today URL parameter (#485)
* feat: add support for weekday=today URL parameter * use settings.weekdays instead of defining seperate array
1 parent d785f6b commit d06d75f

File tree

4 files changed

+42
-2
lines changed

4 files changed

+42
-2
lines changed

README.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,16 @@ var tsml_react_config = {
7777
};
7878
```
7979

80+
### Filter to current day
81+
82+
You can link directly to today's meetings using the special `today` keyword:
83+
84+
```
85+
https://tsml-ui.code4recovery.org/tests/aasanjose.html#/?weekday=today
86+
```
87+
88+
This automatically filters to the current day of the week.
89+
8090
### Use kilometers
8191

8292
Distances can be calculated in miles (`mi`) or kilometers (`km`).

public/app.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/helpers/validate-input.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,15 @@ export const validateInput = (
2727
>)
2828
: defaultInput.time;
2929

30-
const weekday = params.has('weekday')
30+
let weekday = params.has('weekday')
3131
? `${params.get('weekday')}`.split('/')
3232
: defaultInput.weekday;
3333

34+
if (weekday.includes('today')) {
35+
const today = settings.weekdays[new Date().getDay()];
36+
weekday = weekday.map(day => day === 'today' ? today : day);
37+
}
38+
3439
const type = params.has('type')
3540
? `${params.get('type')}`.split('/')
3641
: defaultInput.type;
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import { validateInput } from '../../src/helpers/validate-input';
2+
import { defaults } from '../../src/hooks/settings';
3+
4+
describe('validateInput with weekday=today', () => {
5+
it('should convert "today" to the current weekday name', () => {
6+
const params = new URLSearchParams('weekday=today');
7+
const result = validateInput(params, defaults);
8+
9+
const weekdays = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'];
10+
const expectedDay = weekdays[new Date().getDay()];
11+
12+
expect(result.weekday).toEqual([expectedDay]);
13+
});
14+
15+
it('should handle "today" mixed with other days', () => {
16+
const params = new URLSearchParams('weekday=today/friday');
17+
const result = validateInput(params, defaults);
18+
19+
const weekdays = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'];
20+
const expectedDay = weekdays[new Date().getDay()];
21+
22+
expect(result.weekday).toContain(expectedDay);
23+
expect(result.weekday).toContain('friday');
24+
});
25+
});

0 commit comments

Comments
 (0)