Skip to content

Commit

Permalink
Merge pull request #34 from icssc/feat/addItemButton
Browse files Browse the repository at this point in the history
feat: moved add item button
  • Loading branch information
stevem-zhou authored Feb 27, 2024
2 parents a606643 + 7b4303b commit 322c298
Show file tree
Hide file tree
Showing 2 changed files with 75 additions and 67 deletions.
70 changes: 3 additions & 67 deletions src/components/CreateModal/CreateModal.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,9 @@ import TypeSelector from "../TypeSelector/TypeSelector";
import LostFoundSwitch from "./LostFoundSwitch";

export default function CreateModal({
isOpen,
onOpen,
onClose,
newAddedItem,
setNewAddedItem,
setIsCreate,
Expand All @@ -56,8 +59,6 @@ export default function CreateModal({
upload,
}) {
const { user } = UserAuth();
const { onLoginModalOpen } = useContext(DataContext);
const { isOpen, onOpen, onClose } = useDisclosure();
const [isLoading, setIsLoading] = useState(false);

const uploadFile = useCallback(() => {
Expand Down Expand Up @@ -101,70 +102,6 @@ export default function CreateModal({
count: steps.length,
});

// Define the callback function to handle a 'List an item' button click
const handleListItemButtonClick = useCallback(() => {
if (user) {
onOpen();
setNewAddedItem((prev) => ({ ...prev, islost: true }));
setIsEdit(!isEdit);
} else {
onLoginModalOpen();
}
}, [user, onOpen, onLoginModalOpen, setNewAddedItem, isEdit, setIsEdit]);

// Define the JSX for the 'List an item' button
const listItemButton = (
<Button
// h={{ base: "10vh", md: "7vh" }}
// w={{ base: "40vw", md: "" }}
boxShadow="xl"
_hover={{ bg: "#b4dbd9" }}
backgroundColor="#33b249"
color="white"
fontSize="xl"
fontWeight="bold"
borderRadius={30}
size={"lg"}
paddingY={{ base: 10, md: 8 }}
onClick={handleListItemButtonClick}
>
<Text>List an item</Text>
</Button>
);

// Define the JSX for the 'Cancel (listing an item)' button
const cancelListItemButton = (
<Button
h={{ base: "8vh", md: "7vh" }}
w={{ base: "40vw", md: "8vw" }}
_hover={{ bg: "#F4C2C2" }}
backgroundColor="#B31B1B"
color="white"
fontSize="xl"
fontWeight="bold"
borderRadius={20}
onClick={() => {
setNewAddedItem({
image: "",
type: "",
islost: true,
name: "",
description: "",
itemdate: "",
isresolved: false,
ishelped: null,
});
setUploadImg("");
setActiveStep(0);
setIsCreate(true);
setIsEdit(false);
onClose();
}}
>
Cancel
</Button>
);

// Define the JSX for the loading animation while an image is uploading
const loadingAnimation = (
<Flex
Expand Down Expand Up @@ -341,7 +278,6 @@ export default function CreateModal({

return (
<>
{isCreate ? listItemButton : cancelListItemButton}
<Modal
isOpen={isOpen}
onClose={() => {
Expand Down
72 changes: 72 additions & 0 deletions src/components/Home/Home.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@ import { UserAuth } from "../../context/AuthContext";
import DataContext from "../../context/DataContext";

import { Spinner, useToast } from "@chakra-ui/react";
import { AddIcon, CloseIcon } from "@chakra-ui/icons";
import {
IconButton,
Input,
InputGroup,
InputLeftAddon,
Expand Down Expand Up @@ -62,6 +64,15 @@ export default function Home() {
const toast = useToast();

const { isOpen, onOpen, onClose } = useDisclosure();

// CREATE MODAL
// hoisted state
const {
isOpen: isOpenCreateModal,
onOpen: onOpenCreateModal,
onClose: onCloseCreateModal,
} = useDisclosure();

const {
isOpen: isResultsBarOpen,
onOpen: onResultsBarOpen,
Expand Down Expand Up @@ -170,6 +181,17 @@ export default function Home() {
return dateB - dateA;
};

// Define the callback function to handle a 'List an item' button click
const handleListItemButtonClick = () => {
if (user) {
onOpenCreateModal();
setNewAddedItem((prev) => ({ ...prev, islost: true }));
setIsEdit(!isEdit);
} else {
onLoginModalOpen();
}
};

// Sort the array by date
data.sort(compareDates);

Expand Down Expand Up @@ -408,6 +430,9 @@ export default function Home() {

<Flex display={{ base: "none", md: "block" }}>
<CreateModal
isOpen={isOpenCreateModal}
onOpen={onOpenCreateModal}
onClose={onCloseCreateModal}
setIsCreate={setIsCreate}
isCreate={isCreate}
isEdit={isEdit}
Expand Down Expand Up @@ -587,7 +612,54 @@ export default function Home() {
</Flex>
)}
</Flex>

<Flex position="absolute">
<ButtonGroup
position="absolute"
right="10"
bottom="10"
zIndex={1000}
variant="solid"
>
{!isEdit ? (
<IconButton
height={75}
width={75}
isRound={true}
colorScheme="twitter"
aria-label="Add Item"
fontSize="30px"
icon={<AddIcon />}
onClick={handleListItemButtonClick}
/>
) : (
<IconButton
height={75}
width={75}
isRound={true}
colorScheme="red"
aria-label="Cancel Adding Item"
fontSize="30px"
icon={<CloseIcon />}
onClick={() => {
setNewAddedItem({
image: "",
type: "",
islost: true,
name: "",
description: "",
itemdate: "",
isresolved: false,
ishelped: null,
});
setUploadImg("");
setIsCreate(true);
setIsEdit(false);
onClose();
}}
/>
)}
</ButtonGroup>
<Map
newAddedItem={newAddedItem}
setNewAddedItem={setNewAddedItem}
Expand Down

0 comments on commit 322c298

Please sign in to comment.