Fix bug where clearing ticks on one day would clear all ticks for the track on all days
This commit is contained in:
parent
9b876511d9
commit
bfe0537750
4 changed files with 40 additions and 8 deletions
|
|
@ -15,7 +15,7 @@ const className = computed(() => isSet.value ? "button is-rounded is-info" : "bu
|
|||
|
||||
async function toggle() {
|
||||
if (isSet.value) {
|
||||
await state.taskMarkedIncomplete(props.track)
|
||||
await state.taskMarkedIncomplete(props.track, props.date)
|
||||
} else
|
||||
await state.taskCompleted(props.track, props.date)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,15 @@ enum State {
|
|||
Fetched,
|
||||
}
|
||||
|
||||
function dateQuery(date: Date): URLSearchParams {
|
||||
let query = new URLSearchParams()
|
||||
query.set("year", date.getUTCFullYear().toString())
|
||||
query.set("month", (date.getUTCMonth() + 1).toString())
|
||||
// good thing I still had this ^^^^^^^^^^^^^^ in mind when I wrote this 😬
|
||||
query.set("day", date.getUTCDate().toString())
|
||||
return query
|
||||
}
|
||||
|
||||
export const state = reactive({
|
||||
tracks: new Array<Track>,
|
||||
state: State.Unfetched,
|
||||
|
|
@ -62,11 +71,7 @@ export const state = reactive({
|
|||
this.state = State.Fetched
|
||||
},
|
||||
async taskCompleted(track: Track, date: Date): Promise<Tick> {
|
||||
let query = new URLSearchParams()
|
||||
query.append("year", date.getUTCFullYear().toString())
|
||||
query.append("month", (date.getUTCMonth() + 1).toString())
|
||||
// good thing I still had this ^^^^^^^^^^^^^^ in mind when I wrote this 😬
|
||||
query.append("day", date.getUTCDate().toString())
|
||||
const query = dateQuery(date)
|
||||
const response: Response = await fetch(`/api/v1/tracks/${track.id}/ticked?${query.toString()}`, { method: "PATCH" })
|
||||
const body = await response.text()
|
||||
if (!response.ok) {
|
||||
|
|
@ -75,8 +80,9 @@ export const state = reactive({
|
|||
}
|
||||
return JSON.parse(body)
|
||||
},
|
||||
async taskMarkedIncomplete(track: Track) {
|
||||
const { ok, status, statusText } = await fetch(`/api/v1/tracks/${track.id}/all-ticks`, { method: 'DELETE' })
|
||||
async taskMarkedIncomplete(track: Track, date: Date) {
|
||||
const query = dateQuery(date)
|
||||
const { ok, status, statusText } = await fetch(`/api/v1/tracks/${track.id}/all-ticks?${query.toString()}`, { method: 'DELETE' })
|
||||
if (!ok)
|
||||
error(`error deleting ticks for ${track.id}: ${statusText} (${status})`)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue