- We only know a key prefix for this sender, which can happen when a fallback DM
- arrives before we hear an advertisement. This contact stays read-only until the full
- key resolves from a later advertisement.
+ We've received a message from this sender but don't have their full
+ identity yet. This contact stays read-only until their identity is confirmed —
+ this usually happens automatically when they next advertise.
)}
{isUnknownFullKeyResolvedContact && (
- We know this sender's full key, but we have not yet heard an advertisement that
- fills in their identity details. Those details will appear automatically when an
- advertisement arrives.
+ This sender's profile details (name, location) haven't arrived yet. They
+ will fill in automatically when the sender's next advertisement is heard.
- We only know a key prefix for this sender, which can happen when a fallback DM arrives
- before we learn their full identity. This conversation is read-only until we hear an
- advertisement that resolves the full key.
+ We've received a message from this sender but don't have their full identity yet.
+ Sending is disabled until their identity is confirmed — this usually happens
+ automatically when they next advertise.
);
}
return (
- A full identity profile is not yet available because we have not heard an advertisement from
- this sender. The contact will fill in automatically when an advertisement arrives.
+ This sender's profile details (name, location) haven't arrived yet. They will fill
+ in automatically when the sender's next advert is heard.
);
}
diff --git a/frontend/src/components/NewMessageModal.tsx b/frontend/src/components/NewMessageModal.tsx
index ae28e44..2914abe 100644
--- a/frontend/src/components/NewMessageModal.tsx
+++ b/frontend/src/components/NewMessageModal.tsx
@@ -183,11 +183,11 @@ export function NewMessageModal({
permitCapitals
);
if (channelNames.length === 0) {
- setError('Enter at least one valid room name');
+ setError('Enter at least one valid channel name');
return;
}
if (invalidNames.length > 0) {
- setError(`Invalid room names: ${invalidNames.join(', ')}`);
+ setError(`Invalid channel names: ${invalidNames.join(', ')}`);
return;
}
await onBulkAddHashtagChannels(channelNames, tryHistorical);
@@ -249,7 +249,7 @@ export function NewMessageModal({
{tab === 'new-contact' && 'Add a new contact by entering their name and public key'}
{tab === 'new-channel' && 'Create a private channel with a shared encryption key'}
{tab === 'hashtag' && 'Join a public hashtag channel'}
- {tab === 'bulk-hashtag' && 'Paste multiple hashtag rooms to add them in one batch'}
+ {tab === 'bulk-hashtag' && 'Paste multiple hashtag channels to add them in one batch'}
@@ -377,11 +377,11 @@ export function NewMessageModal({
aria-label="Bulk channel names"
value={bulkChannelText}
onChange={(e) => setBulkChannelText(e.target.value)}
- placeholder={'#ops\nmesh-room\nanother-room'}
+ placeholder={'#ops\nmesh-chat\nanother-channel'}
className="min-h-48 w-full rounded-md border border-input bg-background px-3 py-2 text-sm shadow-sm outline-none transition-colors placeholder:text-muted-foreground focus-visible:ring-2 focus-visible:ring-ring"
/>
- Paste room names separated by lines, spaces, or commas. Leading # marks are
+ Paste channel names separated by lines, spaces, or commas. Leading # marks are
stripped automatically.