@@ -16,6 +16,20 @@ import { IconProps } from '../../icons';
1616import { useChannelOwnCapabilities } from '../useChannelOwnCapabilities' ;
1717import { useStateStore } from '../useStateStore' ;
1818
19+ // Lazily resolved to avoid a static import cycle with defaultComponents.ts
20+ // (defaultComponents → ChannelDetails*/ChannelPreview* → this file). Statically
21+ // importing defaultIcons corrupts module-init order; require it at call time
22+ // instead. Same pattern as ComponentsContext's getDefaults().
23+ let cachedDefaultIcons : IconsMap | undefined ;
24+ const getDefaultIcons = ( ) : IconsMap => {
25+ if ( ! cachedDefaultIcons ) {
26+ cachedDefaultIcons = (
27+ require ( '../../contexts/componentsContext/defaultComponents' ) as { defaultIcons : IconsMap }
28+ ) . defaultIcons ;
29+ }
30+ return cachedDefaultIcons ;
31+ } ;
32+
1933export type ChannelMemberActionItem = ActionItem < 'muteUser' | 'block' | string > ;
2034
2135export type ChannelMemberActionItemsParams = {
@@ -32,7 +46,9 @@ export type ChannelMemberActionItemsParams = {
3246} ;
3347
3448export type BuildDefaultChannelMemberActionItems = (
35- channelMemberActionItemsParams : ChannelMemberActionItemsParams ,
49+ channelMemberActionItemsParams : Omit < ChannelMemberActionItemsParams , 'icons' > & {
50+ icons ?: IconsMap ;
51+ } ,
3652) => ChannelMemberActionItem [ ] ;
3753
3854const ChannelMemberActionsIcon = ( {
@@ -51,7 +67,7 @@ export const buildDefaultChannelMemberActionItems: BuildDefaultChannelMemberActi
5167) => {
5268 const {
5369 channelActions : { removeMembers } ,
54- icons,
70+ icons = getDefaultIcons ( ) ,
5571 isBlocked,
5672 isCurrentUser,
5773 member,
0 commit comments