Skip to content

Commit 4436184

Browse files
Use binary proto fields in staging
1 parent 6bf7984 commit 4436184

30 files changed

+242
-154
lines changed

ts/components/CompositionArea.dom.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -252,8 +252,6 @@ export const CompositionArea = memo(function CompositionArea({
252252
theme,
253253
setMuteExpiration,
254254

255-
// MediaEditor
256-
conversationSelector,
257255
// AttachmentList
258256
draftAttachments,
259257
onClearAttachments,
@@ -967,7 +965,9 @@ export const CompositionArea = memo(function CompositionArea({
967965
isCreatingStory={false}
968966
isFormattingEnabled={isFormattingEnabled}
969967
isSending={false}
970-
conversationSelector={conversationSelector}
968+
convertDraftBodyRangesIntoHydrated={
969+
convertDraftBodyRangesIntoHydrated
970+
}
971971
onClose={() => setAttachmentToEdit(undefined)}
972972
onDone={({
973973
caption,

ts/components/CompositionTextArea.dom.tsx

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,9 @@ import React, { useRef, useCallback, useState } from 'react';
55
import type { LocalizerType } from '../types/I18N.std.js';
66
import type { InputApi } from './CompositionInput.dom.js';
77
import { CompositionInput } from './CompositionInput.dom.js';
8-
import {
9-
hydrateRanges,
10-
type DraftBodyRanges,
11-
type HydratedBodyRangesType,
8+
import type {
9+
DraftBodyRanges,
10+
HydratedBodyRangesType,
1211
} from '../types/BodyRange.std.js';
1312
import type { ThemeType } from '../types/Util.std.js';
1413
import type { PreferredBadgeSelectorType } from '../state/selectors/badges.preload.js';
@@ -17,7 +16,6 @@ import { FunEmojiPicker } from './fun/FunEmojiPicker.dom.js';
1716
import type { FunEmojiSelection } from './fun/panels/FunPanelEmojis.dom.js';
1817
import type { EmojiSkinTone } from './fun/data/emojis.std.js';
1918
import { FunEmojiPickerButton } from './fun/FunButton.dom.js';
20-
import type { GetConversationByIdType } from '../state/selectors/conversations.dom.js';
2119

2220
export type CompositionTextAreaProps = {
2321
bodyRanges: HydratedBodyRangesType | null;
@@ -47,7 +45,9 @@ export type CompositionTextAreaProps = {
4745
getPreferredBadge: PreferredBadgeSelectorType;
4846
draftText: string;
4947
theme: ThemeType;
50-
conversationSelector: GetConversationByIdType;
48+
convertDraftBodyRangesIntoHydrated: (
49+
bodyRanges: DraftBodyRanges | undefined
50+
) => HydratedBodyRangesType | undefined;
5151
};
5252

5353
/**
@@ -76,7 +76,7 @@ export function CompositionTextArea({
7676
emojiSkinToneDefault,
7777
theme,
7878
whenToShowRemainingCount = Infinity,
79-
conversationSelector,
79+
convertDraftBodyRangesIntoHydrated,
8080
}: CompositionTextAreaProps): JSX.Element {
8181
const inputApiRef = useRef<InputApi | undefined>();
8282
const [characterCount, setCharacterCount] = useState(
@@ -132,7 +132,7 @@ export function CompositionTextArea({
132132
);
133133

134134
const hydratedBodyRanges =
135-
hydrateRanges(updatedBodyRanges, conversationSelector) ?? [];
135+
convertDraftBodyRangesIntoHydrated(updatedBodyRanges) ?? [];
136136

137137
if (maxLength !== undefined) {
138138
// if we had to truncate
@@ -150,7 +150,7 @@ export function CompositionTextArea({
150150
setCharacterCount(newCharacterCount);
151151
onChange(newValue, hydratedBodyRanges, caretLocation);
152152
},
153-
[maxLength, onChange, conversationSelector]
153+
[maxLength, onChange, convertDraftBodyRangesIntoHydrated]
154154
);
155155

156156
return (

ts/components/DraftGifMessageSendModal.dom.stories.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import { EmojiSkinTone } from './fun/data/emojis.std.js';
1414
import { LoadingState } from '../util/loadable.std.js';
1515
import { VIDEO_MP4 } from '../types/MIME.std.js';
1616
import { drop } from '../util/drop.std.js';
17-
import { getDefaultConversation } from '../test-helpers/getDefaultConversation.std.js';
1817

1918
const { i18n } = window.SignalContext;
2019

@@ -39,7 +38,7 @@ function RenderCompositionTextArea(props: SmartCompositionTextAreaProps) {
3938
ourConversationId="me"
4039
platform="darwin"
4140
emojiSkinToneDefault={EmojiSkinTone.None}
42-
conversationSelector={() => getDefaultConversation()}
41+
convertDraftBodyRangesIntoHydrated={() => []}
4342
/>
4443
);
4544
}

ts/components/ForwardMessagesModal.dom.stories.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ const useProps = (overrideProps: Partial<PropsType> = {}): PropsType => ({
7070
ourConversationId="me"
7171
platform="darwin"
7272
emojiSkinToneDefault={EmojiSkinTone.None}
73-
conversationSelector={() => getDefaultConversation()}
73+
convertDraftBodyRangesIntoHydrated={() => []}
7474
/>
7575
),
7676
showToast: action('showToast'),

ts/components/MediaEditor.dom.stories.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ export default {
3131
onTextTooLong: action('onTextTooLong'),
3232
platform: 'darwin',
3333
emojiSkinToneDefault: EmojiSkinTone.None,
34+
convertDraftBodyRangesIntoHydrated: () => undefined,
3435
},
3536
} satisfies Meta<PropsType>;
3637

ts/components/MediaEditor.dom.tsx

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,10 @@ import classNames from 'classnames';
1313
import { createPortal } from 'react-dom';
1414
import { fabric } from 'fabric';
1515
import lodash from 'lodash';
16-
import type { DraftBodyRanges } from '../types/BodyRange.std.js';
16+
import type {
17+
DraftBodyRanges,
18+
HydratedBodyRangesType,
19+
} from '../types/BodyRange.std.js';
1720
import type { ImageStateType } from '../mediaEditor/ImageStateType.std.js';
1821
import type {
1922
InputApi,
@@ -47,7 +50,6 @@ import { ThemeType } from '../types/Util.std.js';
4750
import { arrow } from '../util/keyboard.dom.js';
4851
import { canvasToBytes } from '../util/canvasToBytes.std.js';
4952
import { loadImage } from '../util/loadImage.std.js';
50-
import { hydrateRanges } from '../types/BodyRange.std.js';
5153
import { useConfirmDiscard } from '../hooks/useConfirmDiscard.dom.js';
5254
import { useFabricHistory } from '../mediaEditor/useFabricHistory.dom.js';
5355
import { usePortal } from '../hooks/usePortal.dom.js';
@@ -62,7 +64,6 @@ import type { FunStickerSelection } from './fun/panels/FunPanelStickers.dom.js';
6264
import { drop } from '../util/drop.std.js';
6365
import type { FunTimeStickerStyle } from './fun/constants.dom.js';
6466
import * as Errors from '../types/errors.std.js';
65-
import type { GetConversationByIdType } from '../state/selectors/conversations.dom.js';
6667

6768
const { get, has, noop } = lodash;
6869

@@ -85,7 +86,9 @@ export type PropsType = {
8586
imageToBlurHash: typeof imageToBlurHash;
8687
onClose: () => unknown;
8788
onDone: (result: MediaEditorResultType) => unknown;
88-
conversationSelector: GetConversationByIdType;
89+
convertDraftBodyRangesIntoHydrated: (
90+
bodyRanges: DraftBodyRanges | undefined
91+
) => HydratedBodyRangesType | undefined;
8992
} & Pick<
9093
CompositionInputProps,
9194
| 'draftText'
@@ -168,7 +171,7 @@ export function MediaEditor({
168171
ourConversationId,
169172
platform,
170173
sortedGroupMembers,
171-
conversationSelector,
174+
convertDraftBodyRangesIntoHydrated,
172175
imageToBlurHash,
173176
}: PropsType): JSX.Element | null {
174177
const [fabricCanvas, setFabricCanvas] = useState<fabric.Canvas | undefined>();
@@ -181,8 +184,8 @@ export function MediaEditor({
181184
useState<DraftBodyRanges | null>(draftBodyRanges);
182185

183186
const hydratedBodyRanges = useMemo(
184-
() => hydrateRanges(captionBodyRanges ?? undefined, conversationSelector),
185-
[captionBodyRanges, conversationSelector]
187+
() => convertDraftBodyRangesIntoHydrated(captionBodyRanges ?? undefined),
188+
[captionBodyRanges, convertDraftBodyRangesIntoHydrated]
186189
);
187190

188191
const inputApiRef = useRef<InputApi | undefined>();

ts/components/StoryCreator.dom.tsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,12 +93,12 @@ export type PropsType = {
9393
| 'onTextTooLong'
9494
| 'platform'
9595
| 'sortedGroupMembers'
96-
| 'conversationSelector'
96+
| 'convertDraftBodyRangesIntoHydrated'
9797
>;
9898

9999
export function StoryCreator({
100100
candidateConversations,
101-
conversationSelector,
101+
convertDraftBodyRangesIntoHydrated,
102102
debouncedMaybeGrabLinkPreview,
103103
distributionLists,
104104
file,
@@ -265,7 +265,9 @@ export function StoryCreator({
265265
isCreatingStory
266266
isFormattingEnabled={isFormattingEnabled}
267267
isSending={isSending}
268-
conversationSelector={conversationSelector}
268+
convertDraftBodyRangesIntoHydrated={
269+
convertDraftBodyRangesIntoHydrated
270+
}
269271
onClose={onClose}
270272
onDone={({
271273
contentType,

ts/services/backups/import.preload.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -107,10 +107,8 @@ import {
107107
convertBackupMessageAttachmentToAttachment,
108108
convertFilePointerToAttachment,
109109
} from './util/filePointers.preload.js';
110-
import {
111-
filterAndClean,
112-
trimMessageWhitespace,
113-
} from '../../types/BodyRange.std.js';
110+
import { trimMessageWhitespace } from '../../types/BodyRange.std.js';
111+
import { filterAndClean } from '../../util/BodyRange.node.js';
114112
import {
115113
APPLICATION_OCTET_STREAM,
116114
stringToMIMEType,

ts/services/storageRecordOps.preload.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ import {
9696
fromAciUuidBytesOrString,
9797
fromPniUuidBytesOrUntaggedString,
9898
} from '../util/ServiceId.node.js';
99-
import { isProtoBinaryEncodingEnabled } from '../util/isProtoBinaryEncodingEnabled.std.js';
99+
import { isProtoBinaryEncodingEnabled } from '../util/isProtoBinaryEncodingEnabled.dom.js';
100100
import {
101101
getLinkPreviewSetting,
102102
getReadReceiptSetting,

ts/state/ducks/globalModals.preload.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ import { isPermanentlyUndownloadable } from '../../jobs/AttachmentDownloadManage
4444
import type { ButtonVariant } from '../../components/Button.dom.js';
4545
import type { MessageRequestState } from '../../components/conversation/MessageRequestActionsConfirmation.dom.js';
4646
import type { MessageForwardDraft } from '../../types/ForwardDraft.std.js';
47-
import { hydrateRanges } from '../../types/BodyRange.std.js';
47+
import { hydrateRanges } from '../../util/BodyRange.node.js';
4848
import {
4949
getConversationSelector,
5050
type GetConversationByIdType,

0 commit comments

Comments
 (0)