Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47,885 changes: 32,899 additions & 14,986 deletions package-lock.json

Large diffs are not rendered by default.

33 changes: 23 additions & 10 deletions src/components/NavBar.vue
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,23 @@
>
{{ ruta.name }}
</b-navbar-item>
</template>
<template slot="end">
<b-navbar-item
target="_blank"
href="https://twitter.com/HackersWeek"
>
<b-icon icon="twitter"></b-icon>
</b-navbar-item>
<b-navbar-item
target="_blank"
href="https://firebasestorage.googleapis.com/v0/b/hackers-week-3-0.appspot.com/o/D3KVzH2XkAgA1W0.jpg?alt=media&token=37bc00b9-4cb5-41e6-832a-b25cfc2773d8"
href="https://www.instagram.com/hackersweek"
>
Horario
<b-icon icon="instagram"></b-icon>
</b-navbar-item>

<b-navbar-item target="_blank" href="#">
<b-icon icon="discord"></b-icon>
</b-navbar-item>
</template>
</b-navbar>
Expand All @@ -26,17 +38,18 @@
}

.active {
border-bottom: 2px solid #2196ba;
}
/*
* {
color: #062933 !important;
font-weight: bold;
}

*:hover {
color: #2196ba !important;
.active::before {
position: absolute;
content: '';
height: 5px;
bottom: 0;
left: 0;
right: 0;
background: #2196ba;
}
*/
</style>

<script>
Expand Down
122 changes: 73 additions & 49 deletions src/components/Tarjeta.vue
Original file line number Diff line number Diff line change
@@ -1,46 +1,39 @@
<template>
<div class="column is-4-desktop is-6-tablet is-12-mobile">
<div class="card">
<header class="card-header">
<div class="card-header-title">
<div>
<h1 class="title is-6">
{{ info.titulo }}
</h1>
<h2 class="subtitle is-6">
{{ fecha(info.fechaHora) }}
</h2>
</div>
</div>
</header>
<div class="card-image">
<tarjeta-tags :tags="tags" class="topTags" />
<figure class="image is-5by4">
<img
:src="info.imagen"
alt="La imagen no se ha podido cargar"
/>
</figure>
</div>
<footer class="card-footer">
<div class="card-footer-item">
<b-button
@click="isModalActive = true"
type="is-primary"
expanded
>Saber m&aacute;s</b-button
>
</div>
<div class="card-footer-item">
<b-button
tag="a"
target="_blank"
:href="info.urlEvento"
type="is-primary"
expanded
>Registro</b-button
>
</div>
</footer>
<div class="card-content">
<h1 class="title is-4">{{ info.titulo }}</h1>
<h2 class="subtitle is-5">
Por <a href="#">{{ info.persona }}</a>
</h2>
<section>
<div class="buttons is-justify-content-space-between">
<b-button
@click="isModalActive = true"
type="is-secondary"
size="is-medium"
>Saber m&aacute;s</b-button
>
<b-button
tag="a"
size="is-medium"
target="_blank"
:href="info.urlEvento"
type="is-dark"
>Registro</b-button
>
</div>
</section>
</div>
<b-modal full-screen :active.sync="isModalActive">
<ModalEvento
:descripcion="info.descripcion"
Expand All @@ -55,57 +48,88 @@
</template>

<style scoped>
img {
object-fit: cover;
.card:hover {
box-shadow: 0px 10px 26px 0px rgb(3 21 26 / 12%);
}

.content {
display: grid;
.card {
box-shadow: 0px 10px 26px 0px rgb(3 21 26 / 8%);
transition: all 100ms ease-in;
}

.title {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
word-wrap: break-word;
.topTags {
position: absolute;
left: 1em;
bottom: 1em;
z-index: 2;
}

img {
object-fit: cover;
border-radius: 15px;
box-shadow: 1px 10px 35px 0px rgb(3 21 26 / 6%);
}

.buttons {
justify-content: space-between;
}
</style>

<script>
import ModalEvento from '@/components/ModalEvento';
import TarjetaTags from './TarjetaTags.vue';

export default {
name: 'Tarjeta',
components: {
ModalEvento
ModalEvento,
TarjetaTags
},
data: () => ({
isModalActive: false
}),
props: {
info: Object
},
data: comp => ({
tags: [
{
iconName: 'map-marker',
content: comp.info.lugar
},
{
iconName: 'clock',
content: comp.fecha(comp.info.fechaHora)
}
],
isModalActive: false
}),
methods: {
fecha: f => {
const date = new Date(f.seconds * 1000);
const dias = [
'Domingo',
'Lunes',
'Martes',
'Miercoles',
'Miércoles',
'Jueves',
'Viernes'
'Viernes',
'Sábado'
];

const mes = 'Abril';
let minutes = date.getMinutes();
minutes = minutes <= 9 ? '0' + minutes : minutes;
let momento = date.getHours() < 12 ? ' AM' : ' PM';

return (
dias[date.getDay() - 1] +
dias[date.getDay()] +
' ' +
date.getDate() +
' de ' +
mes +
', ' +
date.getHours() +
':' +
date.getMinutes()
minutes +
momento
);
}
}
Expand Down
29 changes: 29 additions & 0 deletions src/components/TarjetaTags.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<template>
<b-field group-multiline grouped>
<div class="control" v-for="(tag, index) in tags" :key="index">
<b-taglist attached>
<b-tag type="is-dark" size="is-medium">
<b-icon :icon="tag.iconName" type="is-primary"></b-icon>
</b-tag>
<b-tag type="is-dark" size="is-medium">{{ tag.content }}</b-tag>
</b-taglist>
</div>
</b-field>
</template>

<script>
export default {
name: 'ModalEvento',
props: {
tags: {
type: Array
}
}
};
</script>

<style>
.icon {
height: unset;
}
</style>
113 changes: 113 additions & 0 deletions src/components/TarjetaTorneo.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
<template>
<div class="column is-4-desktop is-6-tablet is-12-mobile">
<div class="card">
<div class="card-header">
<h1 class="card-header-title title is-4">{{ info.nombre }}</h1>
</div>
<a target="_blank" :href="info.inscripcion">
<div class="card-image">
<tarjeta-tags :tags="tags" class="topTags" />
<figure class="image is-5by4">
<img :src="info.imagen" :alt="info.nombre" />
</figure>
</div>
</a>
</div>
</div>
</template>

<style scoped>
.card,
.card-header {
box-shadow: none;
}

.topTags {
position: absolute;
left: 1em;
bottom: 1em;
z-index: 2;
}

.card-image:hover {
/* box-shadow: 10px 10px 45px 0px rgb(33 150 186 / 28%); */
box-shadow: -10px -10px 45px 0px rgb(3 21 26 / 50%),
10px 10px 45px 0px rgb(33 150 186 / 35%);
transform: scale(1.01);
}
.card-image {
transition: 0.1s all ease-in;
}
.card-image,
.card-image img {
border-radius: 15px;
box-shadow: 0px 0px 45px 0px rgb(3 21 26 / 10%);
}

.card-image img {
object-fit: cover;
}

.title {
overflow: hidden;
text-overflow: ellipsis;
word-wrap: break-word;
}
</style>

<script>
import TarjetaTags from './TarjetaTags.vue';

export default {
name: 'Tarjeta',
components: {
TarjetaTags
},
props: {
info: Object
},
data: comp => ({
tags: [
{
iconName: 'clock',
content: comp.fecha(comp.info.fechaHora)
}
],
isModalActive: false
}),
methods: {
fecha: f => {
const date = new Date(f.seconds * 1000);
const dias = [
'Domingo',
'Lunes',
'Martes',
'Miércoles',
'Jueves',
'Viernes',
'Sábado'
];

console.log(date.getMinutes());
const mes = 'Abril';

let minutes = date.getMinutes();
minutes = minutes <= 9 ? '0' + minutes : minutes;
let momento = date.getHours() < 12 ? ' AM' : ' PM';

return (
dias[date.getDay()] +
' ' +
date.getDate() +
' de ' +
mes +
', ' +
date.getHours() +
':' +
minutes +
momento
);
}
}
};
</script>
Loading