import React, { useState, useEffect } from "react"
import { PositionsItem } from "./PositionsItem"
// @ts-ignore
import Down from "../../assets/img/down.png"
import { AddPosition } from "./AddPosition"
import { DialogWrapCentered } from "../../Templates/Dialogs/Common/DialogWrapCentered/DialogWrapCentered"
import { requestHotelPositions, addNewPosition, removePosition } from "../../store/reducers/positions/actions/actions"
import { connect } from "react-redux"
import { IPositionsProps } from "./types"
import { TRootState } from "../../store"
import { IPositions } from "../../store/reducers/positions/
types.data"
import { requestHotelsTree } from "../../store/reducers/global/actions/actions"
const s = require("./positions.module.css")
export const Positions: React.FC<IPositionsProps> =({requestHotelPositions,
addNewPosition, positionsList, requestHotelsTree, hotelsList,
hotelId, removePosition}) => {
useEffect(()=> {
requestHotelPositions(hotelId)
} , hotelId)
const [addDialog, setAddDialog] = useState(false)
const closeWindow = ()=> {
setAddDialog(false)
}
const addPosition = (body: IPositions) => {
addNewPosition(body)
requestHotelPositions(hotelId)
}
if(!positionsList) {
return (
<h1>Загрузка...</h1>
)
}
return (
<section className={ s.positions } >
<div className={ s.addButton } onClick={() => {
setAddDialog(true)
console.log(hotelId)
}} ><p className={s.addText} >+</p>Добавить</div>
{addDialog ? <DialogWrapCentered><AddPosition addHandler={addPosition}
hotelsList={hotelsList}
positionsList={positionsList}
setVisible={closeWindow} /> </DialogWrapCentered> : null}
<div className={ s.positions__list } >
<div className={ s.positions__listHeader } >
<div className={ s.positions__listHeader__item } >№</div>
<div className={ s.positions__listHeader__item } >Должность</div>
<div className={ s.positions__listHeader__item } >Описание</div>
<div className={ s.positions__listHeader__item } >Опции</div>
</div>
{
positionsList.map(p => <PositionsItem key={
p.id} id={
p.id}
name={
p.name} desc={p.description} removePosition={removePosition} />)
}
</div>
</section>
)
}
const mapStateToProps = (state: TRootState) => ({
positionsList: state.positions.positionsList,
hotelsList:
state.global.hotels,
hotelId: state.employersSideMenu.choosedHotel
})
const mapDispatchToProps = {
requestHotelPositions,
addNewPosition,
requestHotelsTree,
removePosition
}
export const PositionsContainer = connect(mapStateToProps, mapDispatchToProps)(Positions)