Skip to content

Commit be6bb25

Browse files
authored
refactor(ObjectPage): migrate from react-jss to css modules (#5711)
1 parent 8715fc2 commit be6bb25

File tree

10 files changed

+357
-334
lines changed

10 files changed

+357
-334
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
.base {
2+
align-self: center;
3+
opacity: 0;
4+
padding-inline-end: 1rem;
5+
}
6+
7+
.hidden {
8+
opacity: 0;
9+
}
10+
11+
.visible {
12+
transition: opacity 0.5s;
13+
opacity: 1;
14+
}
15+
16+
.imageContainer {
17+
display: inline-block;
18+
vertical-align: middle;
19+
max-height: 3rem;
20+
width: 3rem;
21+
max-width: 3rem;
22+
}
23+
24+
.image {
25+
width: 100%;
26+
height: 100%;
27+
}
Lines changed: 10 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,9 @@
1+
import { useStylesheet } from '@ui5/webcomponents-react-base';
12
import { clsx } from 'clsx';
23
import type { CSSProperties, ReactElement } from 'react';
34
import React, { cloneElement, useEffect, useMemo, useRef, useState } from 'react';
4-
import { createUseStyles } from 'react-jss';
55
import { AvatarSize } from '../../enums/index.js';
6-
7-
const styles = {
8-
base: {
9-
alignSelf: 'center',
10-
opacity: 0,
11-
paddingInlineEnd: '1rem'
12-
},
13-
hidden: {
14-
opacity: 0
15-
},
16-
visible: {
17-
transition: 'opacity 0.5s',
18-
opacity: 1
19-
},
20-
imageContainer: {
21-
display: 'inline-block',
22-
verticalAlign: 'middle',
23-
maxHeight: '3rem',
24-
width: '3rem',
25-
maxWidth: '3rem'
26-
},
27-
image: {
28-
width: '100%',
29-
height: '100%'
30-
}
31-
};
32-
33-
const useStyles = createUseStyles(styles, {
34-
name: 'CollapsedAvatar'
35-
});
6+
import { classNames, styleData } from './CollapsedAvatar.module.css.js';
367

378
export interface CollapsedAvatarPropTypes {
389
image?: string | ReactElement;
@@ -42,7 +13,7 @@ export interface CollapsedAvatarPropTypes {
4213

4314
export const CollapsedAvatar = (props: CollapsedAvatarPropTypes) => {
4415
const { image, imageShapeCircle, style } = props;
45-
const classes = useStyles();
16+
useStylesheet(styleData, CollapsedAvatar.displayName);
4617
const [isMounted, setIsMounted] = useState(false);
4718
const domRef = useRef(null);
4819

@@ -52,18 +23,18 @@ export const CollapsedAvatar = (props: CollapsedAvatarPropTypes) => {
5223
if (typeof image === 'string') {
5324
return (
5425
<span
55-
className={classes.imageContainer}
26+
className={classNames.imageContainer}
5627
style={{ borderRadius: imageShapeCircle ? '50%' : 0, overflow: 'hidden' }}
5728
>
58-
<img className={classes.image} src={image} alt="Object Page Image" />
29+
<img className={classNames.image} src={image} alt="Object Page Image" />
5930
</span>
6031
);
6132
} else {
6233
return cloneElement(image, {
6334
size: AvatarSize.S,
6435
className: image.props?.className
65-
? `${classes.imageContainer} ${image.props?.className}`
66-
: classes.imageContainer
36+
? `${classNames.imageContainer} ${image.props?.className}`
37+
: classNames.imageContainer
6738
} as unknown);
6839
}
6940
}, [image, imageShapeCircle]);
@@ -72,11 +43,13 @@ export const CollapsedAvatar = (props: CollapsedAvatarPropTypes) => {
7243
setIsMounted(true);
7344
}, []);
7445

75-
const containerClasses = clsx(classes.base, isMounted ? classes.visible : classes.hidden);
46+
const containerClasses = clsx(classNames.base, isMounted ? classNames.visible : classNames.hidden);
7647

7748
return (
7849
<div ref={domRef} className={containerClasses} style={style} data-component-name="ObjectPageCollapsedAvatar">
7950
{avatarContent}
8051
</div>
8152
);
8253
};
54+
55+
CollapsedAvatar.displayName = 'CollapsedAvatar';

packages/main/src/components/ObjectPage/ObjectPage.jss.ts

Lines changed: 0 additions & 153 deletions
This file was deleted.

0 commit comments

Comments
 (0)