Open lipis opened 3 years ago
Can I ask about the reason you're migrating to React? Are there any advantages?
https://versus.com/br/knockout-js-vs-react @Godnyx
There some advantages.
@Godnyx in our app we need to update a lot of lists (conversation list, messages list, list of participants, etc.). That's where Knockout's observables don't perform well and where we see a performance boost in using React's Virtual DOM and diffing algorithm.
Why not setting on Svelte then if performance is an issue?
Best practices:
Knockout to React Migration
Ideas for migration a viewmodel (https://github.com/wireapp/wire-webapp/pull/14078)
Refactoring goals:
/script/components
/script/view_model
/page/template
/page/template/content
collection.htm
connect-requests.htm
conversation.htm
/page/template/content/conversation
input-bar.htm
message-list.htm
title-bar.htm
/page/template/content
history-export.htm
history-import.htm
preferences-about.htm
preferences-account.htm
preferences-av.htm
preferences-device-details.htm
preferences-devices.htm
preferences-options.htm
/page/template
detail-view.htm
/page/template/list
archive.htm
background.htm
conversations.htm
preferences.htm
start-ui.htm
takeover.htm
(retired here https://github.com/wireapp/wire-webapp/pull/12710)temporary-guest.htm
/page/template/modal
applock.htm
giphy.htm
group-creation.htm
invite-modal.htm
legal-hold.htm
service-modal.htm
user-modal.htm
/page/template
modals.htm
/page/template/panel
add-participants.htm
conversation-details.htm
conversation-participants.htm
group-participant-service.htm
group-participant-user.htm
guest-options.htm
message-details.htm
notifications.htm
participant-devices.htm
timed-messages.htm
/page/template
warning.htm
wire-main.htm
/script/components/asset
AssetHeader.tsx
AssetLoader.tsx
FileAssetComponent.tsx
LinkPreviewAssetComponent.tsx
LocationAsset.tsx
MessageButton.tsx
/script/components/asset/controls
AudioSeekBar.tsx
MediaButton.tsx
SeekBar.tsx
/script/components/calling
FullscreenVideoCall.tsx
GroupVideoGrid.tsx
ParticipantMicOnIcon.tsx
ChooseScreen.tsx
/script/components
CopyToClipboard.tsx
DeviceCard.tsx
DeviceRemove.tsx
EphemeralTimer.tsx
GroupList.tsx
GuestModeToggle.tsx
image.ts
InfoToggle.tsx
InputLevel.tsx
LegalHoldDot.tsx
/script/components/list
GroupedConversationHeader.tsx
ParticipantItem.tsx
/script/components
LoadingBar.tsx
mentionSuggestions.ts
message.ts
(@Yserz)messageQuote.ts
MessageTimerButton.tsx
modal.ts
/script/components/panel
enrichedFields.ts
PanelActions.tsx
serviceDetails.ts
userActions.ts
userDetails.ts
/script/page
TopPeople.tsx
/script/components
ReceiptModeToggle.tsx
ServiceList.tsx
userInput.ts
/script/view_model
CallingViewModel.ts
ContentViewModel.ts
FaviconViewModel.ts
ImageDetailViewViewModel.ts
ListViewModel.ts
LoadingViewModel.ts
MainViewModel.ts
ModalsViewModel.ts
PanelViewModel.ts
WarningsViewModel.ts
WindowTitleViewModel.ts
/script/view_model/bindings
CommonBindings.ts
ConversationListBindings.ts
ListBackgroundBindings.ts
MessageListBindings.ts
VideoCallingBindings.ts
/script/view_model/content
AppLockViewModel.ts
CollectionDetailsViewModel.ts
CollectionViewModel.ts
ConnectRequestsViewModel.ts
EmojiInputViewModel.ts
GiphyViewModel.ts
GroupCreationViewModel.ts
HistoryExportViewModel.ts
HistoryImportViewModel.ts
InputBarViewModel.ts
InviteModalViewModel.ts
LegalHoldModalViewModel.ts
MessageListViewModel.ts
PreferencesAVViewModel.ts
PreferencesAboutViewModel.ts
PreferencesAccountViewModel.ts
PreferencesDeviceDetailsViewModel.ts
PreferencesDevicesViewModel.ts
PreferencesOptionsViewModel.ts
ServiceModalViewModel.ts
TitleBarViewModel.ts
UserModalViewModel.ts
/script/view_model/list
ArchiveViewModel.ts
PreferencesListViewModel.ts
StartUIViewModel.ts
TakeoverViewModel.ts
(retired here https://github.com/wireapp/wire-webapp/pull/12710)TemporaryGuestViewModel.ts
/script/view_model/panel
AddParticipantsViewModel.ts
BasePanelViewModel.ts
ConversationDetailsViewModel.ts
ConversationParticipantsViewModel.ts
GroupParticipantServiceViewModel.ts
GroupParticipantUserViewModel.ts
GuestsAndServicesViewModel.ts
MessageDetailsViewModel.ts
NotificationsViewModel.ts
TimedMessagesViewModel.ts