mirror of
https://github.com/mattermost/mattermost-mobile.git
synced 2026-11-06 19:00:14 +00:00
Client, mapping, and capability layer only — intentionally NOT wired into any
lifecycle/trigger path yet (no coordinator, no workers).
- types/api/drafts.d.ts: add DraftApi (server response) and DraftUpsertRequest
(POST body) DTOs alongside DraftProps.
- types/api/config.d.ts: add AllowSyncedDrafts to ClientConfig.
- client/rest/base.ts: add draft route helpers (drafts POST, user/team GET,
channel/thread DELETE).
- client/rest/drafts.ts (+test): ClientDrafts mixin — getDrafts, upsertDraft,
deleteDraft (channel vs thread by rootId), Connection-Id header on POST/DELETE.
Mixed into client/rest/index.ts (also drops a pre-existing duplicate
ClientScheduledPost entry in the .with() list).
- constants/preferences.ts: add ADVANCED_SYNC_DRAFTS ('sync_drafts').
- utils/draft/sync.ts (+test): pure bidirectional normalization. server->mobile
maps update_at->server_update_at (never local update_at), priority, props
passthrough, exact file_ids, files from metadata.files; mobile->server sends
only channel_id/root_id/message/type/props/file_ids/priority and returns null
for an empty message so it never POSTs. Fail-closed burn-on-read reconstruction
(durations come from server config, not props; missing/invalid -> no enabled
borConfig).
- queries/servers/drafts.ts: getIsDraftSyncEnabled / observeIsDraftSyncEnabled —
enabled when AllowSyncedDrafts==='true' AND sync_drafts pref not 'false'
(absent = enabled). No server-version gate.
Checks: npm run tsc clean; eslint --quiet clean; 69 focused Jest tests pass
across the new client/sync suites and the scheduled_post/post-handler/drafts
regression neighbors.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
||
|---|---|---|
| .. | ||
| apps.d.ts | ||
| bots.d.ts | ||
| category.d.ts | ||
| channels.d.ts | ||
| client.d.ts | ||
| commands.d.ts | ||
| config.d.ts | ||
| custom_profile_attributes.d.ts | ||
| drafts.d.ts | ||
| emojis.d.ts | ||
| error.d.ts | ||
| files.d.ts | ||
| groups.d.ts | ||
| integrations.d.ts | ||
| license.d.ts | ||
| mm_blocks.d.ts | ||
| plugins.d.ts | ||
| posts.d.ts | ||
| preferences.d.ts | ||
| properties.d.ts | ||
| reactions.d.ts | ||
| roles.d.ts | ||
| scheduled_post.d.ts | ||
| search.d.ts | ||
| session.d.ts | ||
| slash_command.d.ts | ||
| teams.d.ts | ||
| terms_of_service.d.ts | ||
| threads.d.ts | ||
| users.d.ts | ||
| websocket.d.ts | ||