diff --git a/packages/pl-fe/.eslintrc.json b/packages/pl-fe/.eslintrc.json index d73821133..bd3d2475f 100644 --- a/packages/pl-fe/.eslintrc.json +++ b/packages/pl-fe/.eslintrc.json @@ -316,7 +316,7 @@ } ], "tailwindcss/migration-from-tailwind-2": "error", - + "tailwindcss/no-custom-classname": "off", "formatjs/enforce-default-message": "error", "formatjs/enforce-id": "error", diff --git a/packages/pl-fe/src/components/media-gallery.tsx b/packages/pl-fe/src/components/media-gallery.tsx index 46ac2e2e5..ad84f1dd7 100644 --- a/packages/pl-fe/src/components/media-gallery.tsx +++ b/packages/pl-fe/src/components/media-gallery.tsx @@ -152,10 +152,7 @@ const Item: React.FC = ({ return (
1, - })} + className={clsx('media-gallery__item', standalone)} key={attachment.id} style={{ position, float, left, top, right, bottom, height, width: `${width}%` }} > @@ -250,10 +247,7 @@ const Item: React.FC = ({ return (
1, - })} + className={clsx('media-gallery__item', `media-gallery__item--${attachment.type}`, standalone)} key={attachment.id} style={{ position, float, left, top, right, bottom, height, width: `${width}%` }} > @@ -351,34 +345,34 @@ const MediaGallery: React.FC = (props) => { if (isPortrait(ar1) && isPortrait(ar2)) { itemsDimensions = [ - { w: 50, h: '100%', r: '2px' }, - { w: 50, h: '100%', l: '2px' }, + { w: 50, h: '100%', r: '1px' }, + { w: 50, h: '100%', l: '1px' }, ]; } else if (isPanoramic(ar1) && isPanoramic(ar2)) { itemsDimensions = [ - { w: 100, h: panoSize_px, b: '2px' }, - { w: 100, h: panoSize_px, t: '2px' }, + { w: 100, h: panoSize_px, b: '1px' }, + { w: 100, h: panoSize_px, t: '1px' }, ]; } else if ( (isPanoramic(ar1) && isPortrait(ar2)) || (isPanoramic(ar1) && isNonConformingRatio(ar2)) ) { itemsDimensions = [ - { w: 100, h: `${(w / maximumAspectRatio)}px`, b: '2px' }, - { w: 100, h: `${(w * 0.6)}px`, t: '2px' }, + { w: 100, h: `${(w / maximumAspectRatio)}px`, b: '1px' }, + { w: 100, h: `${(w * 0.6)}px`, t: '1px' }, ]; } else if ( (isPortrait(ar1) && isPanoramic(ar2)) || (isNonConformingRatio(ar1) && isPanoramic(ar2)) ) { itemsDimensions = [ - { w: 100, h: `${(w * 0.6)}px`, b: '2px' }, - { w: 100, h: `${(w / maximumAspectRatio)}px`, t: '2px' }, + { w: 100, h: `${(w * 0.6)}px`, b: '1px' }, + { w: 100, h: `${(w / maximumAspectRatio)}px`, t: '1px' }, ]; } else { itemsDimensions = [ - { w: 50, h: '100%', r: '2px' }, - { w: 50, h: '100%', l: '2px' }, + { w: 50, h: '100%', r: '1px' }, + { w: 50, h: '100%', l: '1px' }, ]; } } else if (size === 3) { @@ -392,9 +386,9 @@ const MediaGallery: React.FC = (props) => { if (isPanoramic(ar1) && isNonConformingRatio(ar2) && isNonConformingRatio(ar3)) { itemsDimensions = [ - { w: 100, h: '50%', b: '2px' }, - { w: 50, h: '50%', t: '2px', r: '2px' }, - { w: 50, h: '50%', t: '2px', l: '2px' }, + { w: 100, h: '50%', b: '1px' }, + { w: 50, h: '50%', t: '1px', r: '1px' }, + { w: 50, h: '50%', t: '1px', l: '1px' }, ]; } else if (isPanoramic(ar1) && isPanoramic(ar2) && isPanoramic(ar3)) { itemsDimensions = [ @@ -404,13 +398,13 @@ const MediaGallery: React.FC = (props) => { ]; } else if (isPortrait(ar1) && isNonConformingRatio(ar2) && isNonConformingRatio(ar3)) { itemsDimensions = [ - { w: 50, h: '100%', r: '2px' }, - { w: 50, h: '50%', b: '2px', l: '2px' }, - { w: 50, h: '50%', t: '2px', l: '2px' }, + { w: 50, h: '100%', r: '1px' }, + { w: 50, h: '50%', b: '1px', l: '1px' }, + { w: 50, h: '50%', t: '1px', l: '1px' }, ]; } else if (isNonConformingRatio(ar1) && isNonConformingRatio(ar2) && isPortrait(ar3)) { itemsDimensions = [ - { w: 50, h: '50%', b: '2px', r: '2px' }, + { w: 50, h: '50%', b: '1px', r: '1px' }, { w: 50, h: '50%', l: '-2px', b: '-2px', pos: 'absolute', float: 'none' }, { w: 50, h: '100%', r: '-2px', t: '0px', b: '0px', pos: 'absolute', float: 'none' }, ]; @@ -419,33 +413,33 @@ const MediaGallery: React.FC = (props) => { (isPortrait(ar1) && isPortrait(ar2) && isPortrait(ar3)) ) { itemsDimensions = [ - { w: 50, h: '50%', b: '2px', r: '2px' }, - { w: 50, h: '100%', l: '2px', float: 'right' }, - { w: 50, h: '50%', t: '2px', r: '2px' }, + { w: 50, h: '50%', b: '1px', r: '1px' }, + { w: 50, h: '100%', l: '1px', float: 'right' }, + { w: 50, h: '50%', t: '1px', r: '1px' }, ]; } else if ( (isPanoramic(ar1) && isPanoramic(ar2) && isNonConformingRatio(ar3)) || (isPanoramic(ar1) && isPanoramic(ar2) && isPortrait(ar3)) ) { itemsDimensions = [ - { w: 50, h: panoSize_px, b: '2px', r: '2px' }, - { w: 50, h: panoSize_px, b: '2px', l: '2px' }, - { w: 100, h: `${w - panoSize}px`, t: '2px' }, + { w: 50, h: panoSize_px, b: '1px', r: '1px' }, + { w: 50, h: panoSize_px, b: '1px', l: '1px' }, + { w: 100, h: `${w - panoSize}px`, t: '1px' }, ]; } else if ( (isNonConformingRatio(ar1) && isPanoramic(ar2) && isPanoramic(ar3)) || (isPortrait(ar1) && isPanoramic(ar2) && isPanoramic(ar3)) ) { itemsDimensions = [ - { w: 100, h: `${w - panoSize}px`, b: '2px' }, - { w: 50, h: panoSize_px, t: '2px', r: '2px' }, - { w: 50, h: panoSize_px, t: '2px', l: '2px' }, + { w: 100, h: `${w - panoSize}px`, b: '1px' }, + { w: 50, h: panoSize_px, t: '1px', r: '1px' }, + { w: 50, h: panoSize_px, t: '1px', l: '1px' }, ]; } else { itemsDimensions = [ - { w: 50, h: '50%', b: '2px', r: '2px' }, - { w: 50, h: '50%', b: '2px', l: '2px' }, - { w: 100, h: '50%', t: '2px' }, + { w: 50, h: '50%', b: '1px', r: '1px' }, + { w: 50, h: '50%', b: '1px', l: '1px' }, + { w: 100, h: '50%', t: '1px' }, ]; } } else if (size >= 4) { @@ -470,34 +464,34 @@ const MediaGallery: React.FC = (props) => { if (isPanoramic(ar1) && isPanoramic(ar2) && isNonConformingRatio(ar3) && isNonConformingRatio(ar4)) { itemsDimensions = [ - { w: 50, h: panoSize_px, b: '2px', r: '2px' }, - { w: 50, h: panoSize_px, b: '2px', l: '2px' }, - { w: 50, h: `${(w / 2)}px`, t: '2px', r: '2px' }, - { w: 50, h: `${(w / 2)}px`, t: '2px', l: '2px' }, + { w: 50, h: panoSize_px, b: '1px', r: '1px' }, + { w: 50, h: panoSize_px, b: '1px', l: '1px' }, + { w: 50, h: `${(w / 2)}px`, t: '1px', r: '1px' }, + { w: 50, h: `${(w / 2)}px`, t: '1px', l: '1px' }, ]; } else if (isNonConformingRatio(ar1) && isNonConformingRatio(ar2) && isPanoramic(ar3) && isPanoramic(ar4)) { itemsDimensions = [ - { w: 50, h: `${(w / 2)}px`, b: '2px', r: '2px' }, - { w: 50, h: `${(w / 2)}px`, b: '2px', l: '2px' }, - { w: 50, h: panoSize_px, t: '2px', r: '2px' }, - { w: 50, h: panoSize_px, t: '2px', l: '2px' }, + { w: 50, h: `${(w / 2)}px`, b: '1px', r: '1px' }, + { w: 50, h: `${(w / 2)}px`, b: '1px', l: '1px' }, + { w: 50, h: panoSize_px, t: '1px', r: '1px' }, + { w: 50, h: panoSize_px, t: '1px', l: '1px' }, ]; } else if ( (isPortrait(ar1) && isNonConformingRatio(ar2) && isNonConformingRatio(ar3) && isNonConformingRatio(ar4)) || (isPortrait(ar1) && isPanoramic(ar2) && isPanoramic(ar3) && isPanoramic(ar4)) ) { itemsDimensions = [ - { w: 67, h: '100%', r: '2px' }, - { w: 33, h: '33%', b: '4px', l: '2px' }, - { w: 33, h: '33%', l: '2px' }, - { w: 33, h: '33%', t: '4px', l: '2px' }, + { w: 67, h: '100%', r: '1px' }, + { w: 33, h: '33%', b: '4px', l: '1px' }, + { w: 33, h: '33%', l: '1px' }, + { w: 33, h: '33%', t: '4px', l: '1px' }, ]; } else { itemsDimensions = [ - { w: 50, h: '50%', b: '2px', r: '2px' }, - { w: 50, h: '50%', b: '2px', l: '2px' }, - { w: 50, h: '50%', t: '2px', r: '2px' }, - { w: 50, h: '50%', t: '2px', l: '2px' }, + { w: 50, h: '50%', b: '1px', r: '1px' }, + { w: 50, h: '50%', b: '1px', l: '1px' }, + { w: 50, h: '50%', t: '1px', r: '1px' }, + { w: 50, h: '50%', t: '1px', l: '1px' }, ]; } } @@ -557,7 +551,9 @@ const MediaGallery: React.FC = (props) => { return (
diff --git a/packages/pl-fe/src/components/ui/widget/widget.tsx b/packages/pl-fe/src/components/ui/widget/widget.tsx index c9e3a7eec..dcea8f6b9 100644 --- a/packages/pl-fe/src/components/ui/widget/widget.tsx +++ b/packages/pl-fe/src/components/ui/widget/widget.tsx @@ -47,7 +47,7 @@ const Widget: React.FC = ({ action, }): JSX.Element => ( - {title || action || onActionClick && ( + {(title || action || onActionClick) && ( {title && } {action || (onActionClick && ( diff --git a/packages/pl-fe/src/features/account-gallery/components/media-item.tsx b/packages/pl-fe/src/features/account-gallery/components/media-item.tsx index 9721238f2..31bfe069f 100644 --- a/packages/pl-fe/src/features/account-gallery/components/media-item.tsx +++ b/packages/pl-fe/src/features/account-gallery/components/media-item.tsx @@ -12,9 +12,10 @@ import type { AccountGalleryAttachment } from 'pl-fe/selectors'; interface IMediaItem { attachment: AccountGalleryAttachment; onOpenMedia: (attachment: AccountGalleryAttachment) => void; + isLast?: boolean; } -const MediaItem: React.FC = ({ attachment, onOpenMedia }) => { +const MediaItem: React.FC = ({ attachment, onOpenMedia, isLast }) => { const { autoPlayGif, displayMedia } = useSettings(); const [visible, setVisible] = useState(displayMedia !== 'hide_all' && !attachment.status?.sensitive || displayMedia === 'show_all'); @@ -66,7 +67,7 @@ const MediaItem: React.FC = ({ attachment, onOpenMedia }) => { src={attachment.preview_url} alt={attachment.description} style={{ objectPosition: `${x}% ${y}%` }} - className='size-full overflow-hidden rounded-lg' + className={clsx('size-full overflow-hidden', { 'rounded-br-md': isLast })} /> ); } else if (['gifv', 'video'].indexOf(attachment.type) !== -1) { @@ -80,7 +81,7 @@ const MediaItem: React.FC = ({ attachment, onOpenMedia }) => { thumbnail = (