Files
classroomio/src/routes/index.svelte
T

244 lines
4.7 KiB
Svelte
Raw Normal View History

2020-12-24 20:32:05 +02:00
<script>
2021-04-03 17:45:46 +03:00
import { stores } from "@sapper/app";
2021-04-03 16:43:02 +03:00
import AddComment20 from "carbon-icons-svelte/lib/AddComment20";
import Vote from "../components/Vote.svelte";
import Space from "../components/Space.svelte";
2020-12-28 04:16:45 +02:00
import HashTags from "../components/HashTags.svelte";
2021-04-03 17:45:46 +03:00
function getDiscussion(filterBy, allDiscussions) {
switch (filterBy) {
case "popular":
return allDiscussions.filter((a, i) => i >= 0 && i < 2);
case "recent":
return allDiscussions.filter((a, i) => i >= 2 && i < 5);
case "upvoted":
return allDiscussions.filter((a, i) => i > 4 && i < 8);
default:
return allDiscussions;
}
}
const { page } = stores();
let filterBy = "";
let discussions = [];
$: filterBy = $page.query.filter || "popular";
const allDiscussions = [
2020-12-24 20:32:05 +02:00
{
id: 1,
2021-04-03 16:43:02 +03:00
title: "How do I pass Anicimov?",
2020-12-24 20:32:05 +02:00
author: {
2021-04-03 16:43:02 +03:00
name: "rotimibest",
2020-12-24 20:32:05 +02:00
},
2021-04-03 16:43:02 +03:00
tags: ["ибэит", "икс"],
2020-12-24 20:32:05 +02:00
answered: false,
comments: 10,
votes: 10,
2020-12-24 20:32:05 +02:00
},
{
id: 2,
2021-04-03 16:43:02 +03:00
title:
"Where do I find the nearest restaurant. Where do I find the nearest restaurant?. Where do I find the nearest restaurant? Where do I find the nearest restaurant?",
2020-12-24 20:32:05 +02:00
author: {
2021-04-03 16:43:02 +03:00
name: "attronaldo",
2020-12-24 20:32:05 +02:00
},
2021-04-03 16:43:02 +03:00
tags: ["иибрт", "иее"],
2020-12-24 20:32:05 +02:00
answered: false,
comments: 2,
votes: 2,
2020-12-24 20:32:05 +02:00
},
{
id: 3,
2021-04-03 16:43:02 +03:00
title: "Who is Nikolenko?",
2020-12-24 20:32:05 +02:00
author: {
2021-04-03 16:43:02 +03:00
name: "donald",
2020-12-24 20:32:05 +02:00
},
2021-04-03 16:43:02 +03:00
tags: ["ибэит", "иее", "иибрт", "ИПИГ"],
2020-12-24 20:32:05 +02:00
answered: false,
comments: 10,
votes: 10,
2020-12-24 20:32:05 +02:00
},
{
id: 4,
2021-04-03 16:43:02 +03:00
title: "Archive discussion button",
2020-12-24 20:32:05 +02:00
author: {
2021-04-03 16:43:02 +03:00
name: "acharlesvv",
2020-12-24 20:32:05 +02:00
},
tags: [
2021-04-03 16:43:02 +03:00
"ИЭКСУ",
"ИМБТ",
"ИМИ",
"ИПТДМ",
"ИИИР",
"ГФ",
"ХТФ",
"ИДЗО",
"УИИ",
"УНИ",
2020-12-24 20:32:05 +02:00
],
answered: false,
comments: 15,
votes: 15,
2021-04-03 16:43:02 +03:00
},
{
id: 1,
2021-04-03 16:43:02 +03:00
title: "How do I pass Anicimov?",
author: {
2021-04-03 16:43:02 +03:00
name: "rotimibest",
},
2021-04-03 16:43:02 +03:00
tags: ["ибэит", "икс"],
answered: false,
comments: 7,
votes: 7,
},
{
id: 2,
2021-04-03 16:43:02 +03:00
title: "Where do I find the nearest restaurant?",
author: {
2021-04-03 16:43:02 +03:00
name: "attronaldo",
},
2021-04-03 16:43:02 +03:00
tags: ["иибрт", "иее"],
answered: false,
comments: 4,
votes: 4,
},
{
id: 3,
2021-04-03 16:43:02 +03:00
title: "Who is Nikolenko?",
author: {
2021-04-03 16:43:02 +03:00
name: "donald",
},
2021-04-03 16:43:02 +03:00
tags: ["ибэит", "иее", "иибрт", "ИПИГ"],
answered: false,
comments: 100,
votes: 100,
},
{
id: 4,
2021-04-03 16:43:02 +03:00
title: "Archive discussion button",
author: {
2021-04-03 16:43:02 +03:00
name: "acharlesvv",
},
tags: [
2021-04-03 16:43:02 +03:00
"ИЭКСУ",
"ИМБТ",
"ИМИ",
"ИПТДМ",
"ИИИР",
"ГФ",
"ХТФ",
"ИДЗО",
"УИИ",
"УНИ",
],
answered: false,
comments: 5,
votes: 5,
2021-04-03 16:43:02 +03:00
},
];
2021-04-03 17:45:46 +03:00
$: discussions = getDiscussion(filterBy, allDiscussions);
2020-12-24 20:32:05 +02:00
</script>
<style>
2021-04-03 16:43:02 +03:00
.root {
max-width: 600px;
2021-04-03 17:45:46 +03:00
margin: 0 auto;
2021-04-04 21:05:32 +03:00
border-left: 1px solid #eaecef;
border-right: 1px solid #eaecef;
}
.root .header {
border-bottom: 1px solid #eaecef;
padding: 15px;
2021-04-03 16:43:02 +03:00
}
.root .title {
font-size: 20px;
}
2020-12-24 20:32:05 +02:00
.discussion-box {
2021-04-04 21:05:32 +03:00
/* border: 1px solid #eaecef; */
2020-12-24 20:32:05 +02:00
display: flex;
align-items: flex-start;
2021-04-04 21:05:32 +03:00
padding: 10px 15px;
2021-04-03 16:43:02 +03:00
border-radius: 10px;
2021-04-04 21:05:32 +03:00
margin: 0px auto;
2020-12-24 20:32:05 +02:00
}
h4 {
font-size: 16px;
font-weight: 900;
word-break: break-word;
overflow-wrap: break-word;
margin: 0;
}
2021-04-03 16:43:02 +03:00
.discussion-topic-author {
margin-right: 20px;
}
.discussion-topic-author span {
2020-12-24 20:32:05 +02:00
color: #586069;
2020-12-29 19:05:00 +02:00
font-size: 12px;
2021-04-03 16:43:02 +03:00
}
2021-04-03 17:45:46 +03:00
.active {
position: relative;
display: inline-block;
}
.active::after {
position: absolute;
content: "";
width: 100%;
height: 3px;
background-color: #3182ce;
display: block;
}
2020-12-24 20:32:05 +02:00
</style>
2021-04-03 16:43:02 +03:00
<svelte:head>
<title>Unidiscuss - Help students in your university</title>
</svelte:head>
2021-04-04 21:05:32 +03:00
<div class="root md:w-3/4 mx-auto md:mb-20">
<div class="header flex justify-between mb-2">
<h4 class="title">Разговоры 😉😁</h4>
<div class="flex justify-evenly items-center">
2021-04-03 17:45:46 +03:00
<a
class="mr-5 text-sm {filterBy === 'popular' && 'active'}"
href="?filter=popular">
Popular
</a>
<a
class="mr-5 text-sm {filterBy === 'recent' && 'active'}"
href="?filter=recent">
Recent
</a>
<a
class="mr-5 text-sm {filterBy === 'upvoted' && 'active'}"
href="?filter=upvoted">
Upvoted
</a>
</div>
</div>
2021-04-03 16:43:02 +03:00
{#each discussions as discussion}
<div class="discussion-box">
<Vote value={discussion.votes} />
<div class="discussion-topic-author">
<h4>
<a
rel="prefetch"
href="discussion/{discussion.id}">{discussion.title}</a>
</h4>
<span>{discussion.author.name} asked 1 day ago</span>
<HashTags tags={discussion.tags} />
</div>
<Space />
<div class="flex items-center">
<AddComment20 />
<span>{discussion.comments}</span>
</div>
</div>
{/each}
</div>