kopia lustrzana https://gitlab.com/soapbox-pub/soapbox
				
				
				
			Improvements for sensitive content overlay for too long posts
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>environments/review-sensitive-ofok5m/deployments/2316
							rodzic
							
								
									d481f3d7c6
								
							
						
					
					
						commit
						9611509a7e
					
				| 
						 | 
				
			
			@ -103,7 +103,7 @@ const StatusContent: React.FC<IStatusContent> = ({ status, onClick, collapsable
 | 
			
		|||
  const maybeSetCollapsed = (): void => {
 | 
			
		||||
    if (!node.current) return;
 | 
			
		||||
 | 
			
		||||
    if (collapsable && onClick && !collapsed && status.spoiler_text.length === 0) {
 | 
			
		||||
    if (collapsable && onClick && !collapsed) {
 | 
			
		||||
      if (node.current.clientHeight > MAX_HEIGHT) {
 | 
			
		||||
        setCollapsed(true);
 | 
			
		||||
      }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -92,7 +92,7 @@ const SensitiveContentOverlay = React.forwardRef<HTMLDivElement, ISensitiveConte
 | 
			
		|||
  return (
 | 
			
		||||
    <div
 | 
			
		||||
      className={classNames('absolute z-40', {
 | 
			
		||||
        'cursor-default backdrop-blur-lg rounded-lg w-full h-full border-0 flex justify-center items-center': !visible,
 | 
			
		||||
        'cursor-default backdrop-blur-lg rounded-lg w-full h-full border-0 flex justify-center': !visible,
 | 
			
		||||
        'bg-gray-800/75 inset-0': !visible,
 | 
			
		||||
        'bottom-1 right-1': visible,
 | 
			
		||||
      })}
 | 
			
		||||
| 
						 | 
				
			
			@ -107,64 +107,66 @@ const SensitiveContentOverlay = React.forwardRef<HTMLDivElement, ISensitiveConte
 | 
			
		|||
          size='sm'
 | 
			
		||||
        />
 | 
			
		||||
      ) : (
 | 
			
		||||
        <div className='text-center w-3/4 mx-auto space-y-4' ref={ref}>
 | 
			
		||||
          <div className='space-y-1'>
 | 
			
		||||
            <Text theme='white' weight='semibold'>
 | 
			
		||||
              {intl.formatMessage(isUnderReview ? messages.underReviewTitle : messages.sensitiveTitle)}
 | 
			
		||||
            </Text>
 | 
			
		||||
        <div className='flex justify-center items-center max-h-screen'>
 | 
			
		||||
          <div className='text-center w-3/4 mx-auto space-y-4' ref={ref}>
 | 
			
		||||
            <div className='space-y-1'>
 | 
			
		||||
              <Text theme='white' weight='semibold'>
 | 
			
		||||
                {intl.formatMessage(isUnderReview ? messages.underReviewTitle : messages.sensitiveTitle)}
 | 
			
		||||
              </Text>
 | 
			
		||||
 | 
			
		||||
            <Text theme='white' size='sm' weight='medium'>
 | 
			
		||||
              {intl.formatMessage(isUnderReview ? messages.underReviewSubtitle : messages.sensitiveSubtitle)}
 | 
			
		||||
            </Text>
 | 
			
		||||
              <Text theme='white' size='sm' weight='medium'>
 | 
			
		||||
                {intl.formatMessage(isUnderReview ? messages.underReviewSubtitle : messages.sensitiveSubtitle)}
 | 
			
		||||
              </Text>
 | 
			
		||||
 | 
			
		||||
            {status.spoiler_text && (
 | 
			
		||||
              <div className='py-4 italic'>
 | 
			
		||||
                <Text className='line-clamp-6' theme='white' size='md' weight='medium'>
 | 
			
		||||
                  “<span dangerouslySetInnerHTML={{ __html: status.spoilerHtml }} />”
 | 
			
		||||
                </Text>
 | 
			
		||||
              </div>
 | 
			
		||||
            )}
 | 
			
		||||
          </div>
 | 
			
		||||
              {status.spoiler_text && (
 | 
			
		||||
                <div className='py-4 italic'>
 | 
			
		||||
                  <Text className='line-clamp-6' theme='white' size='md' weight='medium'>
 | 
			
		||||
                    “<span dangerouslySetInnerHTML={{ __html: status.spoilerHtml }} />”
 | 
			
		||||
                  </Text>
 | 
			
		||||
                </div>
 | 
			
		||||
              )}
 | 
			
		||||
            </div>
 | 
			
		||||
 | 
			
		||||
          <HStack alignItems='center' justifyContent='center' space={2}>
 | 
			
		||||
            {isUnderReview ? (
 | 
			
		||||
              <>
 | 
			
		||||
                {links.get('support') && (
 | 
			
		||||
                  <a
 | 
			
		||||
                    href={links.get('support')}
 | 
			
		||||
                    target='_blank'
 | 
			
		||||
                    onClick={(event) => event.stopPropagation()}
 | 
			
		||||
                  >
 | 
			
		||||
                    <Button
 | 
			
		||||
                      type='button'
 | 
			
		||||
                      theme='outline'
 | 
			
		||||
                      size='sm'
 | 
			
		||||
                      icon={require('@tabler/icons/headset.svg')}
 | 
			
		||||
            <HStack alignItems='center' justifyContent='center' space={2}>
 | 
			
		||||
              {isUnderReview ? (
 | 
			
		||||
                <>
 | 
			
		||||
                  {links.get('support') && (
 | 
			
		||||
                    <a
 | 
			
		||||
                      href={links.get('support')}
 | 
			
		||||
                      target='_blank'
 | 
			
		||||
                      onClick={(event) => event.stopPropagation()}
 | 
			
		||||
                    >
 | 
			
		||||
                      {intl.formatMessage(messages.contact)}
 | 
			
		||||
                    </Button>
 | 
			
		||||
                  </a>
 | 
			
		||||
                )}
 | 
			
		||||
              </>
 | 
			
		||||
            ) : null}
 | 
			
		||||
                      <Button
 | 
			
		||||
                        type='button'
 | 
			
		||||
                        theme='outline'
 | 
			
		||||
                        size='sm'
 | 
			
		||||
                        icon={require('@tabler/icons/headset.svg')}
 | 
			
		||||
                      >
 | 
			
		||||
                        {intl.formatMessage(messages.contact)}
 | 
			
		||||
                      </Button>
 | 
			
		||||
                    </a>
 | 
			
		||||
                  )}
 | 
			
		||||
                </>
 | 
			
		||||
              ) : null}
 | 
			
		||||
 | 
			
		||||
            <Button
 | 
			
		||||
              type='button'
 | 
			
		||||
              theme='outline'
 | 
			
		||||
              size='sm'
 | 
			
		||||
              icon={require('@tabler/icons/eye.svg')}
 | 
			
		||||
              onClick={toggleVisibility}
 | 
			
		||||
            >
 | 
			
		||||
              {intl.formatMessage(messages.show)}
 | 
			
		||||
            </Button>
 | 
			
		||||
              <Button
 | 
			
		||||
                type='button'
 | 
			
		||||
                theme='outline'
 | 
			
		||||
                size='sm'
 | 
			
		||||
                icon={require('@tabler/icons/eye.svg')}
 | 
			
		||||
                onClick={toggleVisibility}
 | 
			
		||||
              >
 | 
			
		||||
                {intl.formatMessage(messages.show)}
 | 
			
		||||
              </Button>
 | 
			
		||||
 | 
			
		||||
            {(isUnderReview && isOwnStatus) ? (
 | 
			
		||||
              <DropdownMenu
 | 
			
		||||
                items={menu}
 | 
			
		||||
                src={require('@tabler/icons/dots.svg')}
 | 
			
		||||
              />
 | 
			
		||||
            ) : null}
 | 
			
		||||
          </HStack>
 | 
			
		||||
              {(isUnderReview && isOwnStatus) ? (
 | 
			
		||||
                <DropdownMenu
 | 
			
		||||
                  items={menu}
 | 
			
		||||
                  src={require('@tabler/icons/dots.svg')}
 | 
			
		||||
                />
 | 
			
		||||
              ) : null}
 | 
			
		||||
            </HStack>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
      )}
 | 
			
		||||
    </div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Ładowanie…
	
		Reference in New Issue