Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion scripts/index_d_ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ declare module "SendbirdUIKitGlobal" {
customApiHost?: string,
customWebSocketHost?: string,
// not-ready yet
// mediaQueryBreakPoint?: string | boolean,
// breakpoint?: string | boolean,
theme?: 'light' | 'dark';
userListQuery?(): UserListQuery;
nickname?: string;
Expand Down
22 changes: 11 additions & 11 deletions src/lib/MediaQueryContext.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@ const DEFAULT_MOBILE = false;
const MOBILE_CLASSNAME = 'sendbird--mobile-mode';

const MediaQueryContext = React.createContext({
mediaQueryBreakPoint: DEFAULT_MOBILE,
breakpoint: DEFAULT_MOBILE,
isMobile: false,
});

export interface MediaQueryProviderProps {
children: React.ReactElement;
mediaQueryBreakPoint?: string | boolean;
breakpoint?: string | boolean;
logger?: Logger;
}

Expand All @@ -39,22 +39,22 @@ const MediaQueryProvider = (props: MediaQueryProviderProps): React.ReactElement
children,
logger,
} = props;
const mediaQueryBreakPoint = props?.mediaQueryBreakPoint || DEFAULT_MOBILE;
const breakpoint = props?.breakpoint || DEFAULT_MOBILE;
const [isMobile, setIsMobile] = useState(false);
useEffect(() => {
const updateSize = () => {
if (typeof mediaQueryBreakPoint === 'boolean') {
setIsMobile(mediaQueryBreakPoint);
if (mediaQueryBreakPoint) {
if (typeof breakpoint === 'boolean') {
setIsMobile(breakpoint);
if (breakpoint) {
logger?.info?.('MediaQueryProvider: isMobile: true');
addClassNameToBody();
} else {
logger?.info?.('MediaQueryProvider: isMobile: false');
removeClassNameFromBody();
}
} else {
const mq = window.matchMedia(`(max-width: ${mediaQueryBreakPoint})`);
logger?.info?.(`MediaQueryProvider: Screensize updated to ${mediaQueryBreakPoint}`);
const mq = window.matchMedia(`(max-width: ${breakpoint})`);
logger?.info?.(`MediaQueryProvider: Screensize updated to ${breakpoint}`);
if (mq.matches) {
setIsMobile(true);
addClassNameToBody();
Expand All @@ -73,16 +73,16 @@ const MediaQueryProvider = (props: MediaQueryProviderProps): React.ReactElement
window.removeEventListener('resize', updateSize);
logger?.info?.('MediaQueryProvider: removeEventListener', { updateSize });
};
}, [mediaQueryBreakPoint]);
}, [breakpoint]);
return (
<MediaQueryContext.Provider value={{ mediaQueryBreakPoint, isMobile }}>
<MediaQueryContext.Provider value={{ breakpoint, isMobile }}>
{children}
</MediaQueryContext.Provider>
);
};

export type useMediaQueryContextType = () => ({
mediaQueryBreakPoint: string | boolean;
breakpoint: string | boolean;
isMobile: boolean;
});

Expand Down
4 changes: 2 additions & 2 deletions src/lib/Sendbird.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ const Sendbird = ({
renderUserProfile = null,
onUserProfileMessage = null,
}: SendbirdProviderProps): React.ReactElement => {
const mediaQueryBreakPoint = false;
const breakpoint = false;

const {
logLevel = '',
Expand Down Expand Up @@ -290,7 +290,7 @@ const Sendbird = ({
},
}}
>
<MediaQueryProvider logger={logger} mediaQueryBreakPoint={mediaQueryBreakPoint}>
<MediaQueryProvider logger={logger} breakpoint={breakpoint}>
<LocalizationProvider stringSet={localeStringSet} dateLocale={dateLocale}>
<VoiceMessageProvider isVoiceMessageEnabled={isVoiceMessageEnabled}>
{children}
Expand Down
8 changes: 4 additions & 4 deletions src/modules/App/index.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ export default function App(props) {
accessToken,
customApiHost,
customWebSocketHost,
mediaQueryBreakPoint,
breakpoint,
theme,
userListQuery,
nickname,
Expand Down Expand Up @@ -55,7 +55,7 @@ export default function App(props) {
accessToken={accessToken}
customApiHost={customApiHost}
customWebSocketHost={customWebSocketHost}
mediaQueryBreakPoint={mediaQueryBreakPoint}
breakpoint={breakpoint}
theme={theme}
nickname={nickname}
profileUrl={profileUrl}
Expand Down Expand Up @@ -103,7 +103,7 @@ App.propTypes = {
userListQuery: PropTypes.func,
nickname: PropTypes.string,
profileUrl: PropTypes.string,
mediaQueryBreakPoint: PropTypes.string,
breakpoint: PropTypes.string,
allowProfileEdit: PropTypes.bool,
disableUserProfile: PropTypes.bool,
disableMarkAsDelivered: PropTypes.bool,
Expand Down Expand Up @@ -154,7 +154,7 @@ App.defaultProps = {
nickname: '',
profileUrl: '',
userListQuery: null,
mediaQueryBreakPoint: null,
breakpoint: null,
dateLocale: null,
allowProfileEdit: false,
onProfileEditSuccess: null,
Expand Down