Skip to content
Snippets Groups Projects
DataloadNoValue.tsx 2.33 KiB
Newer Older
  • Learn to ignore specific revisions
  • Bastien DUMONT's avatar
    Bastien DUMONT committed
    import classNames from 'classnames'
    
    import { useI18n } from 'cozy-ui/transpiled/react/I18n'
    
    import { DataloadState, FluidType } from 'enums'
    
    Bastien DUMONT's avatar
    Bastien DUMONT committed
    import { Dataload } from 'models'
    import React, { useCallback } from 'react'
    import './consumptionVisualizer.scss'
    
    
    interface DataloadNoValueProps {
      dataload: Dataload
      fluidType: FluidType
      setActive: React.Dispatch<React.SetStateAction<boolean>>
    }
    
    
    const DataloadNoValue = ({
    
      dataload,
      fluidType,
      setActive,
    }: DataloadNoValueProps) => {
      const { t } = useI18n()
    
      const handleToggleKonnectionCard = useCallback(() => {
        setActive(true)
        const app = document.querySelector('.app-content')
        const content = document.querySelector('.content-view')
        if (content && app) {
          setTimeout(() => {
    
            // Desktop devices
    
            app.scrollTo({
              top: content.scrollHeight + 300,
              behavior: 'smooth',
            })
    
            // Mobiles devices
    
            app.scrollIntoView({
              behavior: 'smooth',
              block: 'end',
              inline: 'end',
            })
          }, 300)
        }
      }, [setActive])
    
    
      if (
        dataload.state === DataloadState.EMPTY ||
        dataload.state === DataloadState.HOLE ||
        dataload.state === DataloadState.AGGREGATED_EMPTY
      ) {
        return (
          <div className={`dataloadvisualizer-content text-22-normal`}>
            <div className="dataloadvisualizer-section">
              <div
                className={`dataloadvisualizer-value ${FluidType[
                  fluidType
                ].toLowerCase()} upper`}
              >
                {t('consumption_visualizer.no_data')}
    
          </div>
        )
      }
    
      if (
        dataload.state === DataloadState.MISSING ||
        dataload.state === DataloadState.AGGREGATED_HOLE_OR_MISSING
      ) {
        return (
          <div
            onClick={handleToggleKonnectionCard}
    
            className={classNames('dataloadvisualizer-content text-22-normal')}
    
          >
            {t('consumption_visualizer.missing_data')}
          </div>
        )
      }
    
      return (
        <div className={`dataloadvisualizer-content text-22-normal`}>
          <div className="dataloadvisualizer-section">
    
              className={`dataloadvisualizer-value ${FluidType[
                fluidType
              ].toLowerCase()} upper to-come`}
    
              {t('consumption_visualizer.data_to_come')}