"react";
                  
                  
                  import PropTypes from "prop-types";
                  
                  
                  
                  
                  
                  import AroundButton from "Components/Buttons/AroundButton";
                  
                  
                  import { timer } from "Common/Utils/date";
                  
                  
                  
                  
                  
                  function WebinarStatus(props) {
                  
                  
                    const { t, onClick, state, date } = props;
                  
                  
                    const [diff, setDiff] = useState({});
                  
                  
                  
                  
                  
                    const timerHandler = () => {
                  
                  
                      console.log("timerHandler")
                  
                  
                      setDiff(timer(date));
                  
                  
                    };
                  
                  
                  
                  
                  
                    useEffect(() => {
                  
                  
                      const timerId = setInterval(timerHandler, 2000);
                  
                  
                  
                  
                  
                      return clearInterval(timerId);
                  
                  
                    }, [diff]);
                  
                  
                  
                  
                  
                    if (state === "Registered") {
                  
                  
                      console.log("diff:", diff)
                  
                  
                    }
                  
                  
                  
                  
                  
                    return null;
                  
                  
                  }
                  
                  
                  
                  
                  
                  WebinarStatus.defaultProps = {
                  
                  
                    onClick: () => null,
                  
                  
                    t: text => text,
                  
                  
                  };
                  
                  
                  
                  
                  
                  WebinarStatus.propTypes = {
                  
                  
                    / Состояние вединара */
                  
                  
                    state: PropTypes.oneOf([
                  
                  
                      / Регистрация открыта */
                  
                  
                      "Open",
                  
                  
                      / Регистрация закрыта */
                  
                  
                      "Closed",
                  
                  
                      / Зарегестрирован */
                  
                  
                      "Registered",
                  
                  
                      / Вебинар завершен */
                  
                  
                      "Finished",
                  
                  
                    ]),
                  
                  
                    / Дата вебинара */
                  
                  
                    date: PropTypes.string,
                  
                  
                    / Ссылка на вебинар */
                  
                  
                    link: PropTypes.string,
                  
                  
                    / Обработчик клика по кнопке регистрации на вебинар */
                  
                  
                    onClick: PropTypes.func,
                  
                  
                    /** Функция транслятор строк */
                  
                  
                    t: PropTypes.func,
                  
                  
                  };
                  
                  
                  
                  
                  
                  export default WebinarStatus;
                  
                  
                   есть такой код, я не понимаю почему setInterval не вызывает timerHandler в эффекте?
                  
                  
                
код на gist
Обсуждают сегодня