event: allow omitting timers from disappearing timer capability

This commit is contained in:
Tulir Asokan 2025-08-26 15:56:38 +03:00
commit 7b3a60742e
2 changed files with 4 additions and 3 deletions

View file

@ -117,7 +117,8 @@ export enum DisappearingType {
export interface DisappearingTimerCapability {
types: DisappearingType[]
timers: milliseconds[]
/** Allowed timer values. If omitted, any timer is allowed. */
timers?: milliseconds[]
/**
* Whether clients should omit the empty disappearing_timer object in messages that they don't want to disappear
*

View file

@ -71,7 +71,7 @@ type FileFeatureMap map[CapabilityMsgType]*FileFeatures
type DisappearingTimerCapability struct {
Types []DisappearingType `json:"types"`
Timers []jsontime.Milliseconds `json:"timers"`
Timers []jsontime.Milliseconds `json:"timers,omitempty"`
OmitEmptyTimer bool `json:"omit_empty_timer,omitempty"`
}
@ -80,7 +80,7 @@ func (dtc *DisappearingTimerCapability) Supports(content *BeeperDisappearingTime
if dtc == nil || content.Type == DisappearingTypeNone {
return true
}
return slices.Contains(dtc.Types, content.Type) && slices.Contains(dtc.Timers, content.Timer)
return slices.Contains(dtc.Types, content.Type) && (dtc.Timers == nil || slices.Contains(dtc.Timers, content.Timer))
}
type CapabilityMsgType = MessageType