Page MenuHomePhabricator

D13350.id.diff
No OneTemporary

D13350.id.diff

diff --git a/native/calendar/entry.react.js b/native/calendar/entry.react.js
--- a/native/calendar/entry.react.js
+++ b/native/calendar/entry.react.js
@@ -35,6 +35,7 @@
import { colorIsDark } from 'lib/shared/color-utils.js';
import { entryKey } from 'lib/shared/entry-utils.js';
import { useThreadHasPermission } from 'lib/shared/thread-utils.js';
+import { useTunnelbroker } from 'lib/tunnelbroker/tunnelbroker-context.js';
import type {
CalendarQuery,
CreateEntryPayload,
@@ -851,7 +852,7 @@
const threadInfo = useResolvedThreadInfo(unresolvedThreadInfo);
const keyserverID = extractKeyserverIDFromIDOptional(threadInfo.id);
- const connection = useSelector(state => {
+ const keyserverConnectionStatus = useSelector(state => {
if (!keyserverID) {
return {
status: 'connected',
@@ -859,11 +860,15 @@
}
return connectionSelector(keyserverID)(state);
});
+ const { socketState } = useTunnelbroker();
invariant(
- connection,
+ keyserverConnectionStatus,
`keyserver ${keyserverID ?? 'null'} missing from keyserverStore`,
);
- const online = connection.status === 'connected';
+
+ const online = threadTypeIsThick(threadInfo.type)
+ ? !!socketState.connected
+ : keyserverConnectionStatus.status === 'connected';
const canEditEntry = useThreadHasPermission(
threadInfo,
diff --git a/web/calendar/entry.react.js b/web/calendar/entry.react.js
--- a/web/calendar/entry.react.js
+++ b/web/calendar/entry.react.js
@@ -26,6 +26,7 @@
import { colorIsDark } from 'lib/shared/color-utils.js';
import { entryKey } from 'lib/shared/entry-utils.js';
import { useThreadHasPermission } from 'lib/shared/thread-utils.js';
+import { useTunnelbroker } from 'lib/tunnelbroker/tunnelbroker-context.js';
import {
type EntryInfo,
type SaveEntryResult,
@@ -516,13 +517,20 @@
threadPermissions.EDIT_ENTRIES,
);
const calendarQuery = useSelector(nonThreadCalendarQuery);
+ const { socketState } = useTunnelbroker();
+
const keyserverID = extractKeyserverIDFromIDOptional(threadID);
- const online = useSelector(state => {
+ const keyserverConnectionStatus = useSelector(state => {
if (!keyserverID) {
return true;
}
return connectionSelector(keyserverID)(state) === 'connected';
});
+
+ const online = threadTypeIsThick(threadInfo.type)
+ ? !!socketState.connected
+ : keyserverConnectionStatus;
+
const callCreateEntry = useCreateEntry();
const callSaveEntry = useSaveEntry();
const callDeleteEntry = useDeleteEntry();

File Metadata

Mime Type
text/plain
Expires
Fri, Sep 20, 5:55 AM (14 h, 42 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2136563
Default Alt Text
D13350.id.diff (2 KB)

Event Timeline