import React, { useState } from "react";
import styled from "styled-components";
import { BiShow, BiHide } from "react-icons/bi";
import { AiOutlineClear } from "react-icons/ai";
import { Flipped } from "react-flip-toolkit";
import { useDispatch, useSelector } from "react-redux";
import { clearCompletedTasks, toggleShowCompletedTasks } from "./../../containers/taskBoard/taskBoardSlice";

const DoneTasksDivider = styled.div`
    display: flex;
    margin: 15px 0 15px 25px;
`;
const DividerLine = styled.div`
    width: 100%;
    position: relative;
    margin: 15px;
    border-bottom: 3px solid #FABB18;
`;

const DividerIcon = styled.div`
    width: 90px;
    position: relative;
    top: 3px;
    color: #FABB18;
    p {
        margin: 0;
        font-weight: bold;
        letter-spacing:${(p)=>p.showCompletedTasks?"3px":"1px"};
    }
`;

const DividerActionDiv = styled.div`
    display: flex;
    width: 70px;
    height: 30px;
    justify-content: space-around;
    align-items: center;
    border-radius: 5px;
    background-color: ${(p) => p.theme.backgroundSecondary};
    -webkit-box-shadow: 0 2px 10px rgba(166, 173, 201, 0.2);
    box-shadow: 0 2px 10px rgba(166, 173, 201, 0.2);
    svg {
        color: #FABB18;
        cursor:pointer;
    }
`;

export default function Divider() {
    const [showActionBtn, setShowActionBtn] = useState(false);
    const showCompletedTasks = useSelector((s) => s.tasks.meta.showCompletedTasks);
    const completedTasksCount = useSelector((s)=>s.tasks.meta.completedTasksCount);
    const dispatch = useDispatch();
    return (
        <Flipped flipId={`-1`}>
            <DoneTasksDivider>
                <DividerLine />
                <DividerIcon showCompletedTasks={showCompletedTasks} onMouseEnter={() => setShowActionBtn(true)} onMouseLeave={() => setShowActionBtn(false)}>
                    {showActionBtn ? (
                        <DividerActionDiv>
                            {showCompletedTasks ? (
                                <BiHide onClick={() => dispatch(toggleShowCompletedTasks())} />
                            ) : (
                                <BiShow onClick={() => dispatch(toggleShowCompletedTasks())} />
                            )}
                            <AiOutlineClear onClick={() => dispatch(clearCompletedTasks())} />
                        </DividerActionDiv>
                    ) : (
                        <p>{showCompletedTasks?"DONE":`DONE(${completedTasksCount})`}</p>
                        
                    )}
                </DividerIcon>
                <DividerLine />
            </DoneTasksDivider>
        </Flipped>
    );
}