Skip to content

Commit 2445d87

Browse files
committed
chore: make ui responsive
1 parent 1148705 commit 2445d87

File tree

6 files changed

+33
-136
lines changed

6 files changed

+33
-136
lines changed

src/app/layout.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ export default function RootLayout({
2929
</head>
3030
<body className="antialiased bg-[#EEEEEC] font-roboto font-normal">
3131
<NavigationBar />
32-
<ToastContainer />
32+
<ToastContainer className="!w-[10rem]" />
3333
{children}
3434
</body>
3535
</html>

src/app/page.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ export default async function Dashboard() {
1818
<div className={containerStyles}>
1919
<div className="flex flex-wrap gap-10 flex-col items-center justify-around">
2020
<div className="flex flex-col items-center gap-4">
21-
<h1 className="font-sans text-3xl font-semibold text-gray-800">Welcome to PulsePoll</h1>
22-
<p className="text-xs font-roboto w-[25rem] text-center">Browse through the latest polls, cast your vote, and stay updated with real-time results. Join the conversation today</p>
21+
<h1 className="font-sans lg:text-3xl md:text-2xl text-xl font-semibold text-gray-800">Welcome to PulsePoll</h1>
22+
<p className="text-xs lg:w-[25rem] md:w-[20rem] font-roboto w-[18rem] text-center">Browse through the latest polls, cast your vote, and stay updated with real-time results. Join the conversation today</p>
2323
</div>
2424
<div className="flex mt-10 flex-wrap items-center justify-evenly px-5 gap-x-10 gap-y-10">
2525
{Array.isArray(polls) && polls.length > 0 ? (

src/app/polls/[pollId]/page.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ export default async function SinglePoll({ params }: {
1616

1717
return <div className={containerStyles} >
1818
{poll ?
19-
<div className="hover:scale-105 hover:rotate-1 transition-all duration-75 bg-white shadow-[0_4px_6px_-1px_rgba(0,0,0,0.1),0_2px_4px_-1px_rgba(0,0,0,0.06)] hover:shadow-[0_10px_15px_-3px_rgba(0,0,0,0.1),0_4px_6px_-2px_rgba(0,0,0,0.05)] flex flex-col gap-[10px] w-fit px-[2rem] py-[4rem] justify-center items-start rounded-xl ">
19+
<div className="hover:scale-105 hover:rotate-1 transition-all duration-75 bg-white shadow-[0_4px_6px_-1px_rgba(0,0,0,0.1),0_2px_4px_-1px_rgba(0,0,0,0.06)] hover:shadow-[0_10px_15px_-3px_rgba(0,0,0,0.1),0_4px_6px_-2px_rgba(0,0,0,0.05)] flex flex-col gap-[10px] w-fit px-[1.5rem] py-[2.5rem] lg:px-[2rem] lg:py-[4rem] md:px-[2rem] md:py-[4rem] justify-center items-start rounded-xl ">
2020
<div className="flex w-[20rem] flex-col px-[10px] gap-[10px]">
2121
<h2 className="font-sans text-xl font-semibold text-gray-800 flex">{poll.title}</h2>
2222
<p className="font-roboto text-xs text-gray-600">
Lines changed: 2 additions & 120 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
import { Poll } from "@/types/Poll";
2-
import { GetAllPolls, GetPollById } from "@/services/pollServices";
1+
import { GetPollById } from "@/services/pollServices";
32
import StatisticsComponent from "@/components/poll/statistics/StatisticsComponent";
43

54
export default async function PollStatistics({ params }: {
@@ -17,121 +16,4 @@ export default async function PollStatistics({ params }: {
1716
poll ? < StatisticsComponent poll={poll} /> : <p>There is no poll with given id.</p>
1817
}
1918
</>
20-
}
21-
22-
// export default function PollStatistics() {
23-
// const [pollData, setPollData] = useState<PollResults>();
24-
// const params = useParams();
25-
// const pollId = params?.pollId as string | null;
26-
27-
// const { notifySuccess, notifyError } = useNotificationStore((state) => state);
28-
29-
// useEffect(() => {
30-
// if (pollId) {
31-
// fetchPollData();
32-
// }
33-
34-
// const es = new EventSource(`${process.env.NEXT_PUBLIC_API_URL}/socket/create-client`);
35-
36-
// es.onopen = () => {
37-
// console.log("connected succesfully.");
38-
// }
39-
40-
// es.addEventListener("poll_results", (event) => {
41-
// const poll = JSON.parse(event.data);
42-
// if (poll.pollId === pollId) {
43-
// setPollData(poll);
44-
// }
45-
// });
46-
47-
// }, [pollId]);
48-
49-
// const fetchPollData = async () => {
50-
// try {
51-
// const response = await GetResults(pollId);
52-
// setPollData(response);
53-
// notifySuccess("Fetched results for the given poll.");
54-
// } catch (error) {
55-
// if (axios.isAxiosError(error) && error.response) {
56-
// const message = error.response.data;
57-
// notifyError(message);
58-
// return;
59-
// }
60-
// notifyError("Failed to fetch poll data");
61-
// console.error("Failed to fetch poll data:", error);
62-
// }
63-
// };
64-
65-
// if (!pollData) {
66-
// return <p className="w-full h-[80vh] flex justify-center items-center">Loading...</p>;
67-
// }
68-
69-
// const COLORS = pollData ? generateColors(pollData.options.length) : [];
70-
71-
// const chartData = pollData?.options?.map((option) => ({
72-
// name: option.text,
73-
// value: option.votes,
74-
// }));
75-
76-
// return (
77-
78-
// <div className="w-full flex justify-center">
79-
// <div className="w-fit max-w-4xl p-6 m-5 bg-white rounded-xl shadow-lg space-y-6">
80-
// <div className="flex flex-row gap-6 justify-between items-center ">
81-
// <div className="flex-1 flex flex-col items-start gap-3">
82-
// <h1 className="mx-[10px] text-2xl font-semibold text-left text-gray-800">{pollData.title}</h1>
83-
// <div className="mx-[10px] text-gray-600 flex flex-col gap-2">
84-
// <p className="text-sm">
85-
// Total Votes:{" "}
86-
// <span className="font-medium text-black">{pollData.totalVotes}</span>
87-
// </p>
88-
// <p className="text-sm">
89-
// Time Elapsed:{" "}
90-
// <span className="font-medium text-black">{pollData.timeElapsed}</span>
91-
// </p>
92-
// </div>
93-
// <ViewPollComponent pollId={pollData.pollId} />
94-
// </div>
95-
96-
// <div className="flex-1 bg-gray-50 rounded-xl p-4 shadow-inner flex justify-center items-center">
97-
// <ResponsiveContainer width="90%" height={200}>
98-
// <PieChart>
99-
// <Pie
100-
// data={chartData}
101-
// dataKey="value"
102-
// nameKey="name"
103-
// cx="50%"
104-
// cy="50%"
105-
// outerRadius={50}
106-
// fill="#8884d8"
107-
// label
108-
// >
109-
// {chartData?.map((entry, index) => (
110-
// <Cell key={`cell-${index}`} fill={COLORS[index % COLORS.length]} />
111-
// ))}
112-
// </Pie>
113-
// <Tooltip />
114-
// </PieChart>
115-
// </ResponsiveContainer>
116-
// </div>
117-
118-
// </div>
119-
// <div className="bg-gray-50 p-6 rounded-xl shadow-inner">
120-
// <h2 className="text-xl font-medium font-sans text-gray-800 mb-4">Options Breakdown</h2>
121-
// <ul className="list-disc ml-6 space-y-3">
122-
// {pollData?.options?.map((option, index) => (
123-
// <li key={index} className="text-gray-700 text-sm">
124-
// <span className="font-medium text-black">{option.text}</span>:{" "}
125-
// {option.votes} votes
126-
// <span className="text-gray-500 ml-2">
127-
// ({option.percentage.toFixed(2)}%)
128-
// </span>
129-
// </li>
130-
// ))}
131-
// </ul>
132-
// </div>
133-
// </div>
134-
// </div>
135-
// );
136-
137-
// }
19+
}

src/components/navigation/LoggedInComponent.tsx

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,16 +28,31 @@ export default function LoggedInComponent() {
2828
}
2929
return <>
3030
<Link className="flex justify-center items-center" href="/">
31-
<span className="text-black opacity-90 hover:opacity-100 transition-all hover:-translate-y-[3px]">Home</span>
31+
<span className="text-black text-xs sm:text-base md:text-base lg:text-base opacity-90 hover:opacity-100 transition-all hover:-translate-y-[3px]">Home</span>
3232
</Link>
33-
<Link className="flex justify-center items-center" href={"/polls/manage"}>
34-
<span className="text-black opacity-90 hover:opacity-100 transition-all hover:-translate-y-[3px]">Manage polls</span>
33+
34+
35+
<Link className="justify-center items-center flex md:hidden lg:hidden" href={"/polls/manage"}>
36+
<span className="text-black text-xs sm:text-base md:text-base lg:text-base opacity-90 hover:opacity-100 transition-all hover:-translate-y-[3px]">Manage</span>
3537
</Link>
36-
<Link className="flex justify-center items-center" href="/polls/new">
37-
<span className="text-black opacity-90 hover:opacity-100 transition-all hover:-translate-y-[3px]">Create poll</span>
38+
39+
40+
<Link className="justify-center items-center flex md:hidden lg:hidden" href="/polls/new">
41+
<span className="text-black text-xs sm:text-base md:text-base lg:text-base opacity-90 hover:opacity-100 transition-all hover:-translate-y-[3px]">Create</span>
3842
</Link>
39-
<Link href="#" onClick={handleLogOut} className="bg-[#B4FE3A] py-2 px-6 rounded-lg hover:-translate-y-1 hover:text-black focus:outline-none focus:ring-2 focus:ring-black transition" >
40-
<span className="text-black opacity-90 hover:opacity-100 transition-all hover:-translate-y-[3px]">Log out</span>
43+
44+
45+
<Link className="lg:flex md:flex justify-center items-center hidden" href={"/polls/manage"}>
46+
<span className="text-black text-xs sm:text-base md:text-base lg:text-base opacity-90 hover:opacity-100 transition-all hover:-translate-y-[3px]">Manage polls</span>
47+
</Link>
48+
49+
50+
<Link className="lg:flex md:flex justify-center items-center hidden" href="/polls/new">
51+
<span className="text-black text-xs sm:text-base md:text-base lg:text-base opacity-90 hover:opacity-100 transition-all hover:-translate-y-[3px]">Create poll</span>
52+
</Link>
53+
54+
<Link href="#" onClick={handleLogOut} className="bg-[#B4FE3A] py-1 px-3 lg:py-2 lg:px-6 rounded-lg hover:-translate-y-1 hover:text-black focus:outline-none focus:ring-2 focus:ring-black transition">
55+
<span className="text-black text-xs sm:text-base md:text-base lg:text-base opacity-90 hover:opacity-100 transition-all hover:-translate-y-[3px]">Log out</span>
4156
</Link>
4257
</>
4358
};

src/components/navigation/NavigationBarComponent.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,18 +21,18 @@ export default function NavigationBar() {
2121
return (
2222
<nav className="bg-white m-4 shadow-md rounded-2xl">
2323
<div className="max-w-7xl p-[15px] rounded-md mx-auto flex justify-between items-center">
24-
<div className="text-black text-2xl font-semibold">
25-
<Link href="/">PulsePoll</Link>
24+
<div className="text-black font-semibold">
25+
<Link className="lg:text-2xl md:text-xl text-sm" href="/">PulsePoll</Link>
2626
</div>
27-
<div className="flex space-x-6 items-center">
27+
<div className="flex space-x-3 lg:space-x-6 md:space-x-6 items-center">
2828
{username ?
2929
<LoggedInComponent /> :
3030
<>
31-
<Link className="text-center hover:-translate-y-[3px] text-black transition-all hover:text-black-200" href="/register">
31+
<Link className="text-center lg:text-base md:text-base text-xs hover:-translate-y-[3px] text-black transition-all hover:text-black-200" href="/register">
3232
Register
3333
</Link>
3434
<Link href="/login" className="bg-[#B4FE3A] transition-all py-2 px-6 rounded-lg hover:-translate-y-[3px] hover:text-black focus:outline-none focus:ring-2 focus:ring-black" >
35-
<span className="text-black hover:text-black transition">Log in</span>
35+
<span className="text-black lg:text-base md:text-base text-xs hover:text-black transition">Log in</span>
3636
</Link>
3737
</>
3838
}

0 commit comments

Comments
 (0)