import React, { useEffect, useState } from "react";
import { Text, Image, StyleSheet } from "react-native";
import { getRequest } from "../request";
import { globalStyles } from "@Styles/global";
import { windowWidth } from "@Utils/Dimensions";
import Layout from "@Components/Layout/Layout";
import { useTheme } from "@Styles";

const PostDetailsScreen = ({ navigation, route }) => {
  const [post, setPost] = useState({});
  const { colors } = useTheme();

  const fetchPost = async () => {
    const { data } = await getRequest(
      `api/posts/${route.params.id}?populate=*`
    );
    if (data) {
      setPost(data.data);
    }
  };

  useEffect(() => {
    fetchPost();
  }, []);

  return (
    <Layout>
      <Image
        style={styles.image}
        source={{
          uri: `http://localhost:1337${post?.attributes?.profileImage.data.attributes.url}`,
        }}
      />
      <Text
        style={[
          globalStyles.boldText,
          styles.title,
          { color: colors.textPrimary },
        ]}
      >
        {post?.attributes?.title}
      </Text>
      <Text
        style={[
          globalStyles.regularText,
          styles.description,
          { color: colors.textPrimary },
        ]}
      >
        {post?.attributes?.description}
      </Text>
    </Layout>
  );
};

const styles = StyleSheet.create({
  image: {
    width: windowWidth,
    height: 300,
  },
  title: {
    marginTop: 20,
    textAlign: "center",
  },
  description: {
    marginHorizontal: 20,
  },
});

export default PostDetailsScreen;
