Commit graph

694 commits

Author SHA1 Message Date
ayumi-signal
4603832258
Calling Reactions 2023-11-16 11:55:35 -08:00
Fedor Indutny
7b62576def
Better filtering of contacts in search 2023-11-15 01:39:17 +01:00
trevor-signal
cf5b3f78b5
Add paginated calling grid for group calls 2023-11-13 09:56:48 -05:00
Scott Nonnenberg
61b4558140
Mark onboarding story read again, even if it's not unread 2023-11-10 16:59:16 -05:00
ayumi-signal
bb8e7af905
Show error when editing messages after max edits 2023-11-07 17:55:48 -08:00
ayumi-signal
41e89554fe
Fix infinite stacking All Media with shortcut 2023-11-08 00:00:25 +01:00
Fedor Indutny
3664063d71
Username and username link integrity check 2023-11-03 15:05:11 -07:00
Fedor Indutny
0ce593bf0d
Remove support for E164-based numbers 2023-11-01 15:55:30 -07:00
Fedor Indutny
aa03ac36bc
Remove safetyNumberAci remote configuration 2023-11-01 13:35:55 -07:00
trevor-signal
fcf2c0a3f0
Clarify function of "Delete" option when deleting conversation messages 2023-10-30 17:02:50 -07:00
Scott Nonnenberg
99b2bc304e
Use streams to download attachments directly to disk
Co-authored-by: trevor-signal <131492920+trevor-signal@users.noreply.github.com>
2023-10-30 09:24:28 -07:00
Josh Perez
156cbca1a3
Fixes for media index 2023-10-17 12:09:09 -07:00
Jamie Kyle
502ea174ab
Upgrade Storybook
Co-authored-by: Scott Nonnenberg <scott@signal.org>
2023-10-11 12:06:43 -07:00
Josh Perez
7d35216fda
Replace MessageController with MessageCache 2023-10-03 17:12:57 -07:00
ayumi-signal
c9af8d3ce2
Fix show same conversation composer focus 2023-10-02 09:42:54 -04:00
ayumi-signal
283ef57779
Group Typing Bubble Animations 2023-09-27 17:23:52 -04:00
Jamie Kyle
a24bdc8bd3
Update last message on group call peek 2023-09-27 12:42:38 -07:00
Jamie Kyle
1cc478180e
Fix call history deletion from sync messages 2023-09-27 12:42:30 -07:00
Fedor Indutny
1a2976dae4
Support duplicate attachments in lightbox 2023-09-26 17:38:21 +02:00
Jamie Kyle
bc67d421ab
Track acceptedTime during call, fix call screen duration 2023-09-20 10:00:01 -04:00
Scott Nonnenberg
01231eb1c6
Reset spoiler expand state when a message is edited 2023-09-19 11:59:22 -07:00
ayumi-signal
e4238de4db
Multiple person typing indicators in groups 2023-09-18 14:17:26 -07:00
Josh Perez
d0296ececa
Improvements to the media editor 2023-09-14 10:04:48 -07:00
Jamie Kyle
7443dd3314
Change order of checks for attachments 2023-09-14 08:35:27 -07:00
Scott Nonnenberg
507986db92
Show 'join anyway' in verify dialog when joining call 2023-09-05 17:34:51 -07:00
Jamie Kyle
80a19d39de
Load messages when showConversation is called in other tab 2023-08-29 17:09:59 -07:00
Josh Perez
8aa397b7a6
Always fetch link preview on edit message 2023-08-28 13:53:35 -04:00
Jamie Kyle
dc9caa0a99
Add logs to group call peeks after call ended 2023-08-28 18:30:47 +02:00
Jamie Kyle
d3a18a197b
Fix adding group call history with no ring 2023-08-23 10:07:29 -07:00
Jamie Kyle
344ebf494d
Mark all calls read when opening calls tab 2023-08-22 17:01:36 -04:00
Jamie Kyle
df0be46c3c
Fix panel animations when switching tabs 2023-08-21 13:18:22 -07:00
Jamie Kyle
29aa188c0f
Fix changing tabs marking conversation read 2023-08-21 21:51:12 +02:00
Fedor Indutny
e5a9bf0f7c
Fix sync messages for voice notes 2023-08-21 12:35:36 -07:00
Scott Nonnenberg
90f0f8e255 eraseAllStorageServiceState: Delete everything, delete in memory 2023-08-21 09:30:33 -07:00
Jamie Kyle
ef0a3de636 Fix legacy call-history messages without a callId
Co-authored-by: Scott Nonnenberg <scott@signal.org>
2023-08-21 09:30:33 -07:00
Fedor Indutny
8b0da36caa Migrate schema to service ids 2023-08-21 09:30:33 -07:00
Jamie Kyle
9c7dc22a23 Update nav tab badges, fix several call tabs issues 2023-08-21 09:30:32 -07:00
Jamie Kyle
1f963efd64 Only notify for group calls once 2023-08-21 09:30:32 -07:00
Jamie Kyle
3268d3e6eb Update call tab design based on feedback 2023-08-21 09:30:32 -07:00
Fedor Indutny
366b875fd2 Introduce Service Id Types
Co-authored-by: Scott Nonnenberg <scott@signal.org>
2023-08-21 09:30:32 -07:00
Jamie Kyle
1eaabb6734
Calls Tab & Group Call Disposition 2023-08-08 17:53:06 -07:00
Josh Perez
4ba3a7856c
Disallow paste image when editing 2023-08-07 15:32:18 -07:00
Josh Perez
1315d3cfe0
Allow link previews to be added to an edit if original msg had no links 2023-08-07 09:36:59 -07:00
Scott Nonnenberg
40c21b1666
Improved windows notifications 2023-08-01 09:06:29 -07:00
Jamie Kyle
1143c0e9ba
macOS: Add support for 12/24-hour time display preferences 2023-07-31 09:23:19 -07:00
Jamie Kyle
88858af144
Improve typing CPU/GPU performance 2023-07-31 09:21:51 -07:00
Josh Perez
1dc1a4d41b
Graceful calling lobby handling 2023-07-27 17:29:10 -07:00
Josh Perez
4ec94367c9
Adds transitions to panels
Co-authored-by: Jamie Kyle <jamie@signal.org>
2023-07-26 15:23:32 -07:00
Fedor Indutny
2601197888
Stories/lists management for removed contact 2023-07-21 13:01:12 -07:00
Fedor Indutny
e1d2dbd8ff
Username Link QR Code 2023-07-20 05:14:08 +02:00
Fedor Indutny
a2b05333f7 Fix part of storybook stories 2023-07-19 16:21:32 -07:00
trevor-signal
54d4734f05 Stop preemptively generating screenshots for video stories 2023-07-19 16:21:31 -07:00
Fedor Indutny
c1580a5eb3 Add support for ACI safety numbers behind a feature flag 2023-07-19 16:21:30 -07:00
Josh Perez
3bf8adf6e1
Adds logging for edit syncs processing 2023-07-05 15:38:37 -07:00
Jamie Kyle
af4ad55c68
Update header actions/add hiddenFromConversationSearch 2023-06-29 11:40:00 -07:00
Josh Perez
21daacd86d
Converts ConversationHeader to useSelector 2023-06-27 20:38:20 +02:00
trevor-signal
9c6fb29edb
Include @mentioned names in search results 2023-06-26 14:25:48 -04:00
Jamie Kyle
aacf37b6d8
fail quietly when search messagelookup gets dropped 2023-06-22 00:02:07 +02:00
Jamie Kyle
0db5a3b888
Fix forwarding attachments that haven't been downloaded 2023-06-16 11:41:52 -07:00
Jamie Kyle
008cb99ab9
fix noteToSelf message 2023-06-14 17:57:27 -07:00
Josh Perez
4d354c8005
Show a warning dialog when sending first edited message 2023-06-14 15:20:06 -07:00
Scott Nonnenberg
23b058fe10
Enable formatting for all users 2023-06-14 15:00:30 -07:00
Josh Perez
bd7545e6d2
Do not fetch link preview when edited message does not contain preview 2023-06-13 15:16:20 -04:00
Josh Perez
975f43102e
Remove quote when editing a message 2023-06-13 09:46:06 -07:00
Josh Perez
b4cafe1e0a
Do not fetch link previews when editing message with attachment 2023-06-13 11:46:21 -04:00
Jamie Kyle
ea92bd5f6f
Only ring when participating in call end 2023-06-12 17:26:46 -07:00
trevor-signal
cf8e100358
Clean up conversation change handler 2023-06-12 13:13:50 -04:00
Josh Perez
7c1957c30d
Moves conversation.getProps out of models
Co-authored-by: Scott Nonnenberg <scott@signal.org>
2023-06-02 10:54:36 -07:00
trevor-signal
d012779e87
Show mentioned badges & enable scrolling to mentions in conversations 2023-05-23 14:59:07 -07:00
trevor-signal
36432b3a3d
Improve handling of invalid conversations 2023-05-19 09:28:59 -04:00
Fedor Indutny
5869717cd3
Use correct timestamp for receipts of edited messages 2023-05-16 10:37:12 -07:00
trevor-signal
bd0e08d6fd
Update call-only conversation message request UI 2023-05-12 14:20:10 -04:00
Josh Perez
216ee67c50
Adds keyboard shortcut for editing last message sent 2023-05-11 17:27:19 -07:00
Josh Perez
1622fe21e7
Normalize diacritics when searching conversations 2023-05-09 18:29:59 -07:00
Scott Nonnenberg
b4caf67bf9
Allow copy/paste of formatting and mentions 2023-05-09 17:40:19 -07:00
Fedor Indutny
320ac044a8
Disable editing quotes for messages 2023-05-09 14:13:19 -07:00
Josh Perez
8761bb8dae
Converts wav files to ogg 2023-05-09 11:51:11 -04:00
Josh Perez
272b81c7cf Adds a pop and whoosh sound for message receive/sent 2023-05-09 10:52:42 -04:00
Yusuf Sahin HAMZA
f004e714f0 Add copy option to triple-dot menu of messages 2023-05-09 10:52:42 -04:00
Josh Perez
e211837bcd
Enables sandbox for all windows except main 2023-04-20 17:23:19 -04:00
Jamie Kyle
0e490542a7
RTL 2023-04-20 10:03:43 -07:00
Josh Perez
1f2cde6d04
Send edited messages support
Co-authored-by: Fedor Indutnyy <indutny@signal.org>
2023-04-20 09:31:59 -07:00
Scott Nonnenberg
850442bf2d
Consider all messages without contentHint, from us, to be resendable 2023-04-18 15:49:14 -07:00
Scott Nonnenberg
7db16c4f0e
Continue to mark story read if markOnboardingStoryAsRead didn't do it 2023-04-18 08:35:29 -07:00
Scott Nonnenberg
9bfbee464b
Support for sending formatting messages 2023-04-14 11:16:28 -07:00
Scott Nonnenberg
ea2083cd11
AudioPlayer: Logging when changing playback or queue 2023-04-11 10:28:04 -07:00
Jamie Kyle
822b162136
Merge delete for me/everyone into one modal 2023-04-10 14:38:34 -07:00
Scott Nonnenberg
d9d820e72a
Support for receiving formatted messages
Co-authored-by: Alvaro Carrasco <alvaro@signal.org>
2023-04-10 09:31:45 -07:00
Fedor Indutny
d34d187f1e
Simplify redux ducks and avoid reexport 2023-04-07 10:46:00 -07:00
Scott Nonnenberg
4a18667ddf
Use sentCounter in CompositionInput to drop old draft updates 2023-04-05 15:06:16 -07:00
Fedor Indutny
f61d8f38b0
Context menu for left pane list items 2023-04-05 13:48:00 -07:00
Josh Perez
d093b1ab13
Delivery receipt support for edited messages 2023-03-29 17:58:16 -04:00
Fedor Indutny
3264c3d509
Display "days ago" in loading screen 2023-03-28 13:31:24 -07:00
Josh Perez
36e21c0134
Receive support for editing messages 2023-03-27 19:48:57 -04:00
Jamie Kyle
d0f17a1398
Add shortcuts for forward/delete selected/targeted messages 2023-03-24 14:16:48 -07:00
Jamie Kyle
1d549a9991
Multi-select forwarding and deleting 2023-03-20 15:23:53 -07:00
Fedor Indutny
1d1b124a92
UpdateDialog on InstallScreen 2023-03-20 13:42:00 -07:00
Fedor Indutny
28adb58c69
electron@22.3.3, esbuild@0.17.11, typescript@5.0.2 2023-03-20 12:58:07 -07:00
Fedor Indutny
f84b6a31dc
Remove Sticker Creator in favor of Web App 2023-03-15 17:59:30 -07:00
Josh Perez
4d7b5cd072
Adds some logging around draft clearing 2023-03-09 09:52:40 -08:00
Josh Perez
0966118e1a
Include additional logging around onboarding story 2023-03-08 17:40:26 -08:00
Fedor Indutny
64827af27f
Fix modal text on username gone error 2023-03-08 17:38:52 -08:00
Fedor Indutny
5d07167222
Use libsignal-client validation for nicknames 2023-03-08 16:58:54 -08:00
Josh Perez
78e3120d1a
Render replies to 1:1 text stories 2023-03-07 14:59:44 -08:00
Fedor Indutny
5dff1768bd
Page media in Lightbox 2023-03-03 19:03:15 -08:00
Alvaro
99015d7b96
Voice notes drafts 2023-03-02 13:55:40 -07:00
Fedor Indutny
f59e35ea0a
confine art creator to staging for now 2023-03-01 12:03:21 -08:00
Fedor Indutny
4549291b7b
Descriptive error messages for video stories 2023-02-28 14:17:22 -08:00
Alvaro
3d4248e070
Fixes to voice notes playback 2023-02-28 06:07:40 -07:00
Fedor Indutny
fad0529080
New sticker creator button 2023-02-27 14:34:43 -08:00
Alvaro
0e655ceeed
Voice notes mini-player 2023-02-24 15:18:57 -08:00
Josh Perez
1258d31007 Merge signalapp/Signal-Desktop#6303 2023-02-22 16:26:14 -05:00
veekas ashoka
0100866d0a Fix keyboard search when left pane is narrow
This PR fixes Cmd+f/Ctrl+f functionality in the left pane.
Using a keyboard to search across all
conversations should now automatically change the left pane width
to accommodate the search input component.

Resolves: #6281
2023-02-22 14:21:59 -05:00
Fedor Indutnyy
ca4defa29f Merge https://github.com/signalapp/Signal-Desktop/pull/6289 2023-02-16 10:43:14 -08:00
Fedor Indutny
486ada8b6c
Handle 409/410 when confirming username 2023-02-14 09:39:47 -08:00
Fedor Indutny
1f95c2299e
Use ContactRecord.systemNickname 2023-02-13 14:40:11 -08:00
Will Bradley
2cb4e65a9a
Focus the text input box after successfully attaching a file
Fixes #6284 - does not focus immediately (so as to avoid stealing
 focus) and does not focus if the file browser is cancelled.
2023-02-12 17:10:52 -08:00
Fedor Indutny
486cbe0471
Support reporting token on envelope 2023-02-07 16:55:12 -08:00
Josh Perez
e11f961d7a
Notification for failed story sends 2023-02-07 12:33:04 -07:00
Jamie Kyle
2bbcc4676e
Move receipt queues into conversation queue to handle 428s 2023-02-06 09:24:34 -08:00
Josh Perez
fd6834588c
Link preview UI improvements 2023-02-03 14:21:07 -08:00
Fedor Indutny
63d6b14516
Split ACI contact when it is unregistered 2023-02-01 13:32:46 -08:00
Alvaro
42b4406ad5
Formatting voice recorder error 2023-01-27 09:51:53 -08:00
Josh Perez
6a80b4b837
Close story viewer when DOE a story 2023-01-27 10:35:58 -07:00
Josh Perez
28a295d4e1
Fixes audio recording 2023-01-26 09:57:39 -07:00
Josh Perez
b5947e0ef1
Fixes storybook for AudioCapture 2023-01-20 17:31:30 -07:00
Fedor Indutny
ef13eb06fc
Confine message selector cache to component 2023-01-19 11:56:02 -08:00
Fedor Indutny
ac50af52d2
Unsupported OS Dialog 2023-01-18 15:31:10 -08:00
Jamie Kyle
c58a723f45
Add type-alias-readonlydeep rule and make ducks mostly immutable 2023-01-13 12:07:26 -08:00
Scott Nonnenberg
cd6e4bbe28
Set draftChanged=true when changing draftAttachments, better logging 2023-01-12 17:25:59 -08:00
Josh Perez
9374832ea4
Enables ContextIsolation 2023-01-12 16:24:59 -08:00
Josh Perez
a1a2c68137
Scroll to message if clicking on opened conversation 2023-01-12 11:51:03 -07:00
Jamie Kyle
81fc9ff94d
Add more logs for call disposition 2023-01-11 12:04:03 -08:00
Jamie Kyle
e5638c0b20
Call Disposition 2023-01-09 16:52:01 -08:00
Jim Gustafson
01eb3b73b4
Update to RingRTC v2.23.0 2023-01-09 10:38:57 -08:00
Scott Nonnenberg
aa1f96cb6a
ducks/composer: Properly compare attachment size against limit 2023-01-06 10:31:45 -08:00
Josh Perez
74abe0c1ef
Do not fire SELECTED_CONVERSATION_CHANGED more than once 2023-01-05 15:34:47 -08:00
Josh Perez
6dd32456c6
Remove a message from lightbox if its been DOE 2023-01-05 15:16:56 -07:00
Scott Nonnenberg
b8234765bf
Update Backbone types: attributes is T - and fix failing type checks 2023-01-05 13:58:13 -08:00
Josh Perez
c65a7d0a14
Fix error where removePreview is called without a conversationId 2023-01-05 16:55:33 -05:00
Fedor Indutny
487bb58880
Fix units of maximum attachment size 2023-01-05 13:47:11 -08:00
Josh Perez
198d6f7e26
Make composer duck aware of the conversation it is in 2023-01-04 16:22:36 -08:00
Jamie Kyle
7a076be0e7
Don't allow link preview and draft attachment at the same time 2023-01-04 15:00:38 -08:00
Josh Perez
476006af96
Clears @mentions when clearing draft 2023-01-03 14:35:59 -08:00
Josh Perez
add184d0da
Guard against composer setting quote while conversation switched 2023-01-03 14:32:40 -08:00
Dimitris Apostolou
3c80272673 Fix typos 2023-01-03 13:02:01 -08:00
Jamie Kyle
3705b959d6
Remove end year from licenses 2023-01-03 11:55:46 -08:00
Josh Perez
5e6eeecede
Removes Backbone.View and jQuery 2023-01-02 13:34:41 -08:00
Fedor Indutny
f92f81dfd6
Cache some volatile conversation properties 2022-12-22 16:13:23 -08:00
Josh Perez
0b83ab497d
Removes ReactWrapperView 2022-12-21 22:07:45 -05:00
Fedor Indutny
dec23725e5
Use ReadonlyArrays in conversation model and redux 2022-12-21 16:07:02 -08:00
Josh Perez
a80c6d89a8
Moves message details into React pane land 2022-12-21 15:44:23 -05:00
Fedor Indutny
ed271d92ea
Add no-misused/floating-promises lint rule 2022-12-21 10:41:48 -08:00
Scott Nonnenberg
1a68c3db62
conversation_view: Move the last of the small functions to redux 2022-12-20 22:25:10 -05:00
Josh Perez
d8ea9856ec
Moves show all media to react pane 2022-12-20 09:50:23 -08:00
Scott Nonnenberg
1e282ee5d0
ConversationView: Pull various functions out of getMessageActions 2022-12-19 17:04:47 -08:00
Fedor Indutny
5a98fc2f4c
Optimize Message rendering 2022-12-19 15:33:55 -07:00
Josh Perez
d4124abb01
Moves ConversationDetails to react panels 2022-12-15 22:12:05 -05:00
Josh Perez
e142cb47f5
Moves various panels out to ConversationView react 2022-12-14 17:10:09 -08:00
Jamie Kyle
15efbde23d
Move ToastType to its own file to avoid importing electron in storybooks 2022-12-14 16:48:36 -08:00
Scott Nonnenberg
7c86f02c7e
ConversationView: Move deleteMessage to redux 2022-12-14 14:45:39 -08:00
Scott Nonnenberg
f2f1c3c021
Standardize on showConversation function, delete unused functions 2022-12-14 11:05:32 -08:00
Josh Perez
ebeb6a7a6d
A hybrid panel system for React & Backbone 2022-12-14 10:41:04 -08:00
Josh Perez
b138774454
Moves saveAttachment to a redux action 2022-12-14 10:12:04 -08:00
Fedor Indutny
490a565b95
Unsnooze updates when clicked 2022-12-13 14:55:52 -08:00
Josh Perez
635a59a473
Moves showLightbox to redux 2022-12-09 21:02:22 -05:00
Scott Nonnenberg
07f7fa93d6
ConversationView: Move setQuotedMessage/scrollToMessage to redux 2022-12-09 11:11:14 -08:00
Josh Perez
7c68f9ef1a
Moves showStickerPackPreview to globalModals 2022-12-09 11:01:46 -08:00
Scott Nonnenberg
c0ebafe2bc
Search Box: Handle focus properly 2022-12-09 10:03:32 -08:00
Alvaro
2db14e8d6f
Auto-select a newly created distribution list or group when sending story 2022-12-09 09:35:34 -08:00
Scott Nonnenberg
5c059c54d5
Eliminate resetEmojiResults, move onEditorStateChanged to redux 2022-12-08 15:56:17 -08:00
Josh Perez
2378776e1b
Moves sendMessage and friends to redux 2022-12-08 02:43:48 -05:00
Josh Perez
7ea38bb1a9
Moves startGV2Migration to redux 2022-12-08 01:41:37 -05:00
Scott Nonnenberg
452e0b7b31
ConversationView: Move attachments processing into redux 2022-12-07 20:26:59 -05:00
Scott Nonnenberg
ff6750e4fd
ConversationView: Move setPin to redux 2022-12-06 17:00:02 -08:00
Josh Perez
105162dc66
Moves blockAndReportSpam to redux 2022-12-06 11:03:09 -08:00
Scott Nonnenberg
92a512a16d
ConversationView: Move call/mute functions into redux 2022-12-06 09:31:44 -08:00
Josh Perez
9348940ecf
Moves parts of conversation view into redux 2022-12-05 14:56:23 -08:00
Scott Nonnenberg
a49a6f2057
Notifications for a few merge-related scenarios 2022-12-05 14:46:54 -08:00
Josh Perez
1109415dc1
Add global setting for sent media quality 2022-12-02 18:54:37 -05:00
Jamie Kyle
6198b02640
Init payments message types 2022-11-30 13:47:54 -08:00
Alvaro
b246b3d8af
Filtered stories to self to fix StoryViewer progress lines 2022-11-29 14:19:50 -08:00
Fedor Indutny
37d383f344
Improve story DOE flow 2022-11-28 18:07:26 -08:00
Alvaro
4294429bc2
Made StoryDataType sourceDevice required 2022-11-23 12:52:36 -08:00
Alvaro
896b36c301
Story replies indicator 2022-11-22 20:05:33 -08:00
Fedor Indutny
991580a1ed
Improve error handling during group sends 2022-11-22 10:43:43 -08:00
Fedor Indutny
a2f1b469ea
Make sure that storySendMode is in group types 2022-11-19 00:31:18 -08:00
Fedor Indutny
98ef4c627a
Update eslint to 8.27.0 2022-11-17 16:45:19 -08:00
Fedor Indutny
6be69a7ba8
Use DurationInSeconds for expireTimer 2022-11-16 13:18:02 -07:00
Scott Nonnenberg
5100d17ed2
SafetyNumberChangeDialog: Introduce awareness of stories 2022-11-10 23:10:30 -05:00
Alvaro
45069673ce
Fixed all connections count and renamed MY_STORIES_ID and EditMyStoriesPrivacyModal 2022-11-10 08:51:39 -07:00
Fedor Indutny
be6e988a95
Hydrate body ranges for story replies 2022-11-09 20:59:36 -08:00
Jamie Kyle
9f85db3fd8
stories: muted by default, muted on app blur 2022-11-09 23:24:42 -05:00
Josh Perez
4a5da95c1d
Fixes storybook 2022-11-09 13:11:45 -08:00
Scott Nonnenberg
4fa614e1d6
Save source of selectedMessage changes to prevent unnecessary scrolls 2022-11-09 12:18:03 -08:00
Josh Perez
19a42ed719
Onboarding story 2022-11-08 21:38:19 -05:00
Alvaro
d0fb25f758
Show and sort active groups when sending a story 2022-11-08 13:01:59 -07:00
Alvaro
4445ef80eb
Implement group story reply deletion 2022-11-04 07:22:07 -06:00
Scott Nonnenberg
9fba33943a
Keep story creator around until we've verified contacts and queued job 2022-11-01 17:36:16 -07:00
Fedor Indutny
8f62442822
Allow link-only stories, download previews 2022-10-31 14:28:28 -07:00