diff --git a/src/components/Calendar.jsx b/src/components/Calendar.jsx
index af6bd01..90f6a9d 100644
--- a/src/components/Calendar.jsx
+++ b/src/components/Calendar.jsx
@@ -7,6 +7,7 @@ import { useCalendar } from "@/context/CalendarContext";
import EventFormModal from "./EventFormModal";
import DeleteEventModal from "./DeleteEventModal";
import { useRouter } from "next/navigation";
+import Modal from "./Modal";
const localizer = momentLocalizer(moment);
@@ -33,12 +34,13 @@ export default function UserCalendar() {
const [modalStart, setModalStart] = useState(null);
const [modalEnd, setModalEnd] = useState(null);
+ const [showLoginModal, setShowLoginModal] = useState(false);
const router = useRouter();
const handleSelectSlot = async ({ start, end }) => {
if (!isLoggedIn) {
- alert("You must be logged in to create an event.");
+ setShowLoginModal(true);
return;
}
setModalStart(start);
@@ -125,6 +127,14 @@ export default function UserCalendar() {
}}
/>
)}
+ setShowLoginModal(false)}
+ >
+
+ You must be logged in to create an event.
+
+
diff --git a/src/components/Modal.jsx b/src/components/Modal.jsx
new file mode 100644
index 0000000..5486285
--- /dev/null
+++ b/src/components/Modal.jsx
@@ -0,0 +1,25 @@
+import Link from "next/link";
+import Button from "./Button";
+
+export default function Modal({ open, onClose, children }) {
+ if (!open) return null;
+ return (
+
+
+
{children}
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/src/styles/common/_button.scss b/src/styles/common/_button.scss
index 39d42ba..29ec78e 100644
--- a/src/styles/common/_button.scss
+++ b/src/styles/common/_button.scss
@@ -27,7 +27,7 @@
justify-content: center;
text-align: center;
font-size: 1.1rem;
- border: none;
+ border: 1px solid var(--color-header-text);
background-color: var(--color-header-button);
padding: 15px;
border-radius: 15px;
@@ -41,4 +41,25 @@
color: var(--color-header-text-hover);
}
}
+
+ &__button-wrapper-2 {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ text-align: center;
+ font-size: 1.1rem;
+ border: none;
+ background-color: var(--color-header-text);
+ padding: 15px;
+ border-radius: 15px;
+ cursor: pointer;
+ width: 100%;
+ color: var(--color-header-button);
+ transition: background-color 0.2s ease, color 0.2s ease;
+
+ &:hover {
+ background-color: var(--color-header-button-hover);
+ color: var(--color-header-text-hover);
+ }
+ }
}
diff --git a/src/styles/common/_contacts.scss b/src/styles/common/_contacts.scss
index bf7e82d..e2d5172 100644
--- a/src/styles/common/_contacts.scss
+++ b/src/styles/common/_contacts.scss
@@ -92,14 +92,14 @@
&__component-wrapper {
display: flex;
- justify-content: space-between;
+ justify-content: top;
align-items: center;
height: 95%;
flex-flow: column;
width: 60%;
}
- &__contacts-section-wrapper {
+ &__section-wrapper {
flex-flow: column nowrap;
width: 100%;
height: 100%;
@@ -114,7 +114,7 @@
margin-bottom: 40px;
}
- &__contacts-section-wrapper::-webkit-scrollbar {
+ &__section-wrapper::-webkit-scrollbar {
border-bottom-right-radius: 8px;
border-top-right-radius: 8px;
}
@@ -135,7 +135,7 @@
text-align: center;
}
- &__contacts-empty-message {
+ &__empty-message {
padding: 20px;
}
@@ -147,11 +147,11 @@
width: 100%;
}
- &__contacts-title {
+ &__title {
padding-top: 20px;
}
- &__contacts-searchbar-container {
+ &__searchbar-container {
width: 100%;
}
}
diff --git a/src/styles/common/_modal.scss b/src/styles/common/_modal.scss
new file mode 100644
index 0000000..c47310d
--- /dev/null
+++ b/src/styles/common/_modal.scss
@@ -0,0 +1,48 @@
+.modal-style {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100vw;
+ height: 100vh;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ z-index: 1000;
+ background: rgba(0, 0, 0, 0.4);
+ opacity: 1;
+
+ &__container {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ background-color: var(--color-toolbar-label);
+ padding: 40px;
+ border-radius: 24px;
+ color: black;
+ min-width: 320px;
+ min-height: 120px;
+ box-shadow: 0 4px 32px rgba(0, 0, 0, 0.25);
+ }
+
+ &__inner-text {
+ padding: 24px 0 32px;
+ }
+
+ &__button-container {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex-direction: row;
+ gap: 8px;
+ width: 100%;
+ }
+
+ &__login-button {
+ width: 100%;
+ }
+
+ &__close-button {
+ width: 25%;
+ }
+}
diff --git a/src/styles/main.scss b/src/styles/main.scss
index 91f9335..a524ea2 100644
--- a/src/styles/main.scss
+++ b/src/styles/main.scss
@@ -8,3 +8,4 @@
@import './common/_searchbar.scss';
@import './common/_sidebar.scss';
@import './_custom-calendar.scss';
+@import './common/_modal.scss';