From d2848b747119bc91e4c6a16b500598e555ac9d0b Mon Sep 17 00:00:00 2001 From: Oliver Lazoroski Date: Mon, 9 Mar 2026 13:18:00 +0100 Subject: [PATCH 1/6] feat: redesign channel list loading skeletons --- src/components/Loading/LoadingChannels.tsx | 13 +- .../LoadingChannels.test.js.snap | 46 +++++++- .../Loading/styling/LoadingChannels.scss | 111 ++++++++++++++++++ src/components/Loading/styling/index.scss | 1 + 4 files changed, 157 insertions(+), 14 deletions(-) create mode 100644 src/components/Loading/styling/LoadingChannels.scss diff --git a/src/components/Loading/LoadingChannels.tsx b/src/components/Loading/LoadingChannels.tsx index 1aae3ab268..603fa3441f 100644 --- a/src/components/Loading/LoadingChannels.tsx +++ b/src/components/Loading/LoadingChannels.tsx @@ -1,24 +1,21 @@ import React from 'react'; const LoadingItems = () => ( -
+
-
+
); -const UnMemoizedLoadingChannels = () => ( +export const LoadingChannels = () => (
+ +
); - -/** - * Loading indicator for the ChannelList - */ -export const LoadingChannels = React.memo(UnMemoizedLoadingChannels); diff --git a/src/components/Loading/__tests__/__snapshots__/LoadingChannels.test.js.snap b/src/components/Loading/__tests__/__snapshots__/LoadingChannels.test.js.snap index c4c3d26c0f..29795f61ca 100644 --- a/src/components/Loading/__tests__/__snapshots__/LoadingChannels.test.js.snap +++ b/src/components/Loading/__tests__/__snapshots__/LoadingChannels.test.js.snap @@ -6,13 +6,13 @@ exports[`LoadingChannels should render component with default props 1`] = ` class="str-chat__loading-channels" >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Date: Mon, 9 Mar 2026 13:32:03 +0100 Subject: [PATCH 2/6] fix: reduce channel list loading layout shift --- .../ChannelList/ChannelListMessenger.tsx | 12 +- .../ChannelListMessenger.test.js.snap | 18 ++- src/components/Loading/LoadingChannels.tsx | 15 +- .../LoadingChannels.test.js.snap | 105 ++++++++------ .../Loading/styling/LoadingChannels.scss | 130 +++++++----------- 5 files changed, 153 insertions(+), 127 deletions(-) diff --git a/src/components/ChannelList/ChannelListMessenger.tsx b/src/components/ChannelList/ChannelListMessenger.tsx index 8628d9f66e..7b59daf874 100644 --- a/src/components/ChannelList/ChannelListMessenger.tsx +++ b/src/components/ChannelList/ChannelListMessenger.tsx @@ -42,7 +42,17 @@ export const ChannelListMessenger = ( } if (loading) { - return ; + return ( +
+
+ +
+
+ ); } return ( diff --git a/src/components/ChannelList/__tests__/__snapshots__/ChannelListMessenger.test.js.snap b/src/components/ChannelList/__tests__/__snapshots__/ChannelListMessenger.test.js.snap index 55e94dac38..6afa1332a7 100644 --- a/src/components/ChannelList/__tests__/__snapshots__/ChannelListMessenger.test.js.snap +++ b/src/components/ChannelList/__tests__/__snapshots__/ChannelListMessenger.test.js.snap @@ -3,11 +3,11 @@ exports[`ChannelListMessenger by default, children should be rendered 1`] = `
@@ -31,8 +31,18 @@ exports[`ChannelListMessenger when \`error\` prop is true, \`LoadingErrorIndicat exports[`ChannelListMessenger when \`loading\` prop is true, \`LoadingIndicator\` should be rendered 1`] = `
-
- Loading Indicator +
+
+
+ Loading Indicator +
+
`; diff --git a/src/components/Loading/LoadingChannels.tsx b/src/components/Loading/LoadingChannels.tsx index 603fa3441f..2d24a5d5b7 100644 --- a/src/components/Loading/LoadingChannels.tsx +++ b/src/components/Loading/LoadingChannels.tsx @@ -1,11 +1,16 @@ import React from 'react'; const LoadingItems = () => ( -
-
-
-
-
+
+