2024-01-28 21:17:45 +03:00
|
|
|
|
import { Box, Button, Card, TextField, Typography } from "@mui/material";
|
2024-01-28 21:38:16 +03:00
|
|
|
|
import React, { useEffect, useState } from "react";
|
2024-01-28 21:17:45 +03:00
|
|
|
|
import { useDispatch, useSelector } from "react-redux";
|
|
|
|
|
import {addPost} from "./posts.store"
|
|
|
|
|
import moment from "moment";
|
|
|
|
|
import("./index.scss");
|
2024-01-28 04:03:41 +03:00
|
|
|
|
|
|
|
|
|
export default function General(){
|
2024-01-28 21:17:45 +03:00
|
|
|
|
|
|
|
|
|
const posts = useSelector((state) => state.generalposts.posts)
|
|
|
|
|
|
|
|
|
|
return <>
|
|
|
|
|
<Box
|
|
|
|
|
width="100%"
|
|
|
|
|
height="100%"
|
|
|
|
|
display="flex"
|
|
|
|
|
flexDirection="column"
|
|
|
|
|
className="layout"
|
|
|
|
|
gap="10px"
|
|
|
|
|
>
|
|
|
|
|
<Box
|
|
|
|
|
display="flex"
|
|
|
|
|
flexDirection="row"
|
|
|
|
|
gap="10px"
|
|
|
|
|
className="header"
|
|
|
|
|
>
|
|
|
|
|
<Box className="maxcontent">
|
|
|
|
|
<Box>
|
|
|
|
|
<Typography fontSize="2em">
|
|
|
|
|
Assemble
|
|
|
|
|
</Typography>
|
|
|
|
|
</Box>
|
|
|
|
|
</Box>
|
|
|
|
|
</Box>
|
|
|
|
|
<Box
|
|
|
|
|
width="100%"
|
|
|
|
|
height="100%"
|
|
|
|
|
display="flex"
|
|
|
|
|
flexDirection="row"
|
|
|
|
|
className="master"
|
|
|
|
|
gap="10px"
|
|
|
|
|
flexGrow="1"
|
|
|
|
|
pb={1}
|
|
|
|
|
>
|
|
|
|
|
<Box className="rightpanel">
|
|
|
|
|
<Card
|
|
|
|
|
sx={{
|
|
|
|
|
width: "100%",
|
|
|
|
|
height: "100%"
|
|
|
|
|
}}
|
|
|
|
|
>
|
|
|
|
|
|
|
|
|
|
</Card>
|
|
|
|
|
</Box>
|
|
|
|
|
<Box className="middlepanel">
|
|
|
|
|
<CreateNewPost />
|
|
|
|
|
{posts.map(({id,date,context}) => {
|
|
|
|
|
return <PostTemplete
|
|
|
|
|
key={id}
|
|
|
|
|
id={id}
|
|
|
|
|
date={date}
|
|
|
|
|
context={context}
|
|
|
|
|
/>
|
|
|
|
|
})}
|
|
|
|
|
</Box>
|
|
|
|
|
<Box className="leftpanel">
|
|
|
|
|
<Card
|
|
|
|
|
sx={{
|
|
|
|
|
width: "100%",
|
|
|
|
|
height: "100%"
|
|
|
|
|
}}
|
|
|
|
|
>
|
|
|
|
|
|
|
|
|
|
</Card>
|
|
|
|
|
</Box>
|
|
|
|
|
</Box>
|
|
|
|
|
</Box>
|
|
|
|
|
</>
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
function CreateNewPost()
|
|
|
|
|
{
|
|
|
|
|
const dispatch = useDispatch()
|
|
|
|
|
const [text, setText] = useState("");
|
|
|
|
|
|
|
|
|
|
function clickEvent()
|
|
|
|
|
{
|
|
|
|
|
dispatch(addPost(text));
|
|
|
|
|
setText("");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return <Card sx={{p:1}}>
|
|
|
|
|
<Box>
|
|
|
|
|
<TextField
|
|
|
|
|
multiline
|
|
|
|
|
fullWidth
|
|
|
|
|
rows={2}
|
|
|
|
|
placeholder="Yeni bir gönderi yayımlayın...."
|
|
|
|
|
value={text}
|
|
|
|
|
onChange={(event) => setText(event.target.value) }
|
|
|
|
|
/>
|
|
|
|
|
</Box>
|
|
|
|
|
<Box mt={1}>
|
|
|
|
|
<Button
|
|
|
|
|
color="primary"
|
|
|
|
|
variant="contained"
|
|
|
|
|
onClick={clickEvent}
|
|
|
|
|
>
|
|
|
|
|
Yayınla
|
|
|
|
|
</Button>
|
|
|
|
|
</Box>
|
|
|
|
|
</Card>
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function PostTemplete({id, date, context})
|
|
|
|
|
{
|
|
|
|
|
return <Card sx={{p:1}} title={id}>
|
|
|
|
|
<Box>
|
|
|
|
|
<Typography fontSize="0.7em">
|
|
|
|
|
Abdussamed ULUTAŞ
|
|
|
|
|
</Typography>
|
|
|
|
|
</Box>
|
|
|
|
|
<Box py={1}>
|
2024-01-28 21:30:13 +03:00
|
|
|
|
<Typography component="pre">
|
2024-01-28 21:17:45 +03:00
|
|
|
|
{context}
|
|
|
|
|
</Typography>
|
|
|
|
|
</Box>
|
|
|
|
|
<Box>
|
2024-01-28 21:38:16 +03:00
|
|
|
|
<RevokeTiming date={date} />
|
2024-01-28 21:17:45 +03:00
|
|
|
|
</Box>
|
|
|
|
|
</Card>
|
2024-01-28 21:38:16 +03:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function RevokeTiming({date})
|
|
|
|
|
{
|
|
|
|
|
let [text, setText] = useState([,]);
|
|
|
|
|
|
|
|
|
|
function update()
|
|
|
|
|
{
|
|
|
|
|
setText([
|
|
|
|
|
moment(date).format("HH:mm:ss DD/MM/YYYY"),
|
|
|
|
|
moment(date).locale("tr").fromNow(false)
|
|
|
|
|
])
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
useEffect(()=>{
|
|
|
|
|
update();
|
|
|
|
|
let timer = setInterval( update, 30_000)
|
|
|
|
|
return () => clearInterval(timer)
|
|
|
|
|
},[]);
|
|
|
|
|
|
|
|
|
|
return <Typography fontSize="0.7em" color="#9b9b9b" title={text[0]}>
|
|
|
|
|
{text[1]} yayımladı
|
|
|
|
|
</Typography>
|
2024-01-28 21:17:45 +03:00
|
|
|
|
}
|