Skip to content
Merged
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
271 changes: 271 additions & 0 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -186,5 +186,276 @@
</noscript>
<div id="root"></div>
<script type="module" src="/src/index.tsx"></script>
<script>

//<![CDATA[
"use strict";

function _toConsumableArray(n) {
if (Array.isArray(n)) {
for (var t = 0, i = Array(n.length); t < n.length; t++) i[t] = n[t];
return i;
}
return Array.from(n);
}

let _slicedToArray = function () {
function n(n, t) {
let r = [], u = !0, f = !1, e = undefined, i, o;
try {
for (i = n[Symbol.iterator](); !(u = (o = i.next()).done); u = !0) if (r.push(o.value), t && r.length === t) break;
} catch (s) {
f = !0;
e = s;
} finally {
try {
!u && i["return"] && i["return"]();
} finally {
if (f) throw e;
}
}
return r;
}

return function (t, i) {
if (Array.isArray(t)) return t;
if (Symbol.iterator in Object(t)) return n(t, i);
throw new TypeError("Invalid attempt to destructure non-iterable instance");
};
}(), sessionize;
typeof sessionize == "undefined" && (sessionize = {});
sessionize.showModal = function (n, t, i) {
const r = document.getElementById("sz-modal-container"),
u = new XMLHttpRequest;
return r.innerHTML = "<div class=\"sz-modal-overlay\"><div class=\"sz-spinner\"><\/div><\/div>", r.classList.remove("is-hidden"), u.onreadystatechange = function () {
let t, n;
if (this.readyState === 4 && this.status === 200) {
for (r.innerHTML = this.responseText, r.classList.remove("is-hidden"), t = document.getElementsByClassName("sz-modal__close-on-click"), n = 0; n < t.length; n++) t[n].onclick = function () {
document.getElementById("sz-modal-container").classList.add("is-hidden");
};
sessionize.getLocalTimes();
sessionize.manageActive();
} else (this.status === 404 || this.status === 500) && r.classList.add("is-hidden");
}, u.open("POST", "https://sessionize.com/api/v2/" + n + "/" + t + "?id=" + i, !0), u.send(), !1;
};
sessionize.initTabs = function () {
let i = document.getElementsByClassName("sz-tab-container"), t, r, n;
if (i.length > 1) {
for (n = 0; n < i.length; n++) i[n].classList.remove("sz-tab-container--active");
for (t = document.getElementsByClassName("sz-tabs__item"), t.length > 0 && (r = document.getElementsByClassName("sz-tabs__item--default"), r.length > 0 ? r[0].classList.add("sz-tabs__item--active") : t[0].classList.add("sz-tabs__item--active")), sessionize.tabChanged(), n = 0; n < t.length; n++) t[n].children[0].onclick = sessionize.tabChange;
}
};
sessionize.tabChange = function (n) {
for (var t, r, u = document.getElementsByClassName("sz-tabs__item"), i = 0; i < u.length; i++) u[i].classList.remove("sz-tabs__item--active");
if (t = undefined, n instanceof Event) t = n.target.parentElement; else if (n && n.indexOf("#") === 0) {
if (r = document.querySelector(".sz-tabs__link[href=\"" + n + "\"]"), !r) return console.error("Hash " + n + " is invalid. Run \"sessionize.help()\" in the console to get the list of valid hashes."), !1;
t = r.parentElement;
}
return t.classList.add("sz-tabs__item--active"), sessionize.tabChanged(), !1;
};
sessionize.tabChanged = function () {
let i = document.getElementsByClassName("sz-tabs__item--active"), t, n,
r;
if (i.length > 0) {
for (t = document.getElementsByClassName("sz-tab-container"), n = 0; n < t.length; n++) t[n].classList.remove("sz-tab-container--active");
r = i[0].children[0].href.split("#")[1];
document.getElementById(r).classList.add("sz-tab-container--active");
}
};
sessionize.help = function () {
let i;
let r;
let n = [], e, y, t, d, u, it, f, et;
n.push("---------------------");
n.push("SESSIONIZE EMBED HELP");
n.push("---------------------");
n.push("");
e = Array.prototype.slice.call(document.querySelectorAll(".sz-tabs__link[href]"));
y = e.map(function (n) {
return " " + n.hash + " = " + n.innerText;
}).join("\n");
n.push("DEFAULT GROUP SELECTION ON LOAD");
n.push("Add hash to URL and preselect a tab:");
e.length === 0 ? n.push(" (none available)") : n.push(y);
n.push("");
n.push("OPEN SESSION/SPEAKER MODAL ON LOAD (if modals are enabled)");
n.push("Add hash to URL:");
n.push(" #sz-session-<session_id> (e.g. #sz-session-12345)");
n.push(" #sz-speaker-<speaker_guid> (e.g. #sz-speaker-00000000-1111-2222-3333-444444444444)");
n.push("");
const st = Array.prototype.slice.call(document.querySelectorAll(".sz-session__room")),
p = st.map(function (n) {
const t = "sz-room--" + n.dataset.roomid,
i = document.querySelectorAll(".sz-room." + t).length > 0;
return {tag: n.textContent, "class": t, hasHeader: i};
}), ht = p.filter(function (n) {
return n.hasHeader;
}),
ct = Array.prototype.slice.call(document.querySelectorAll(".sz-tag")),
w = ct.map(function (n) {
let t = "";
return n.classList.forEach(function (n) {
n !== "sz-tag" && n.lastIndexOf("sz-tag_", 0) === 0 && (t = n);
}), {tag: n.textContent, "class": t};
}),
lt = [].concat(_toConsumableArray(new Set([].concat(_toConsumableArray(p), _toConsumableArray(w))))),
o = {},
s = {}, h = {};
lt.sort(function (n, t) {
return n["class"] > t["class"] ? 1 : -1;
}).forEach(function (n) {
o[n["class"]] = n.tag;
});
ht.sort(function (n, t) {
return n["class"] > t["class"] ? 1 : -1;
}).forEach(function (n) {
s[n["class"]] = n.tag;
});
w.sort(function (n, t) {
return n["class"] > t["class"] ? 1 : -1;
}).forEach(function (n) {
h[n["class"]] = n.tag;
});
n.push("SESSION STYLING");
n.push("Style CSS classes to highlight sessions:");
let c = !0, b = !1, k = undefined;
try {
for (t = Object.entries(o)[Symbol.iterator](); !(c = (d = t.next()).done); c = !0) {
let g = _slicedToArray(d.value, 2);
i = g[0];
r = g[1];
n.push(" #sessionize .sz-session." + i + " { /* style for " + r + " */ }");
n.push(" #sessionize .sz-session." + i + " .sz-session__card { /* style for " + r + " for SMART GRID VIEW */ }");
}
} catch (l) {
b = !0;
k = l;
} finally {
try {
!c && t["return"] && t["return"]();
} finally {
if (b) throw k;
}
}
Object.keys(o).length === 0 && n.push(" (none available)");
n.push("");
n.push("ROOM HEADER STYLING");
n.push("Style CSS classes to highlight room headers:");
let a = !0, nt = !1, tt = undefined;
try {
for (u = Object.entries(s)[Symbol.iterator](); !(a = (it = u.next()).done); a = !0) {
const rt = _slicedToArray(it.value, 2);
i = rt[0];
r = rt[1];
n.push(" #sessionize .sz-cssgrid .sz-room." + i + " { /* style for " + r + " */ }");
}
} catch (l) {
nt = !0;
tt = l;
} finally {
try {
!a && u["return"] && u["return"]();
} finally {
if (nt) throw tt;
}
}
Object.keys(s).length === 0 && n.push(" (none available)");
n.push("");
n.push("CATEGORY STYLING");
n.push("Style CSS classes to highlight categories:");
let v = !0, ut = !1, ft = undefined;
try {
for (f = Object.entries(h)[Symbol.iterator](); !(v = (et = f.next()).done); v = !0) {
var ot = _slicedToArray(et.value, 2);
i = ot[0];
r = ot[1];
n.push(" #sessionize .sz-tag." + i + " { /* style for " + r + " */ }");
}
} catch (l) {
ut = !0;
ft = l;
} finally {
try {
!v && f["return"] && f["return"]();
} finally {
if (ut) throw ft;
}
}
Object.keys(h).length === 0 && n.push(" (none available)");
n.push("");
console.log(n.join("\n"));
};
sessionize.timeMode = "local";
sessionize.getLocalTimes = function () {
var u, f, n, t, i, r;
try {
u = Intl.DateTimeFormat().resolvedOptions().timeZone;
sessionize.localCityName = u.split("/")[1].replace(new RegExp("_", "g"), " ");
sessionize.localCityName === "Kiev" && (sessionize.localCityName = "Kyiv");
} catch (e) {
sessionize.showLocalTimezone = !1;
}
(f = document.getElementsByClassName("sz-timezone"), f.length > 1 && (console.error("Invalid number of .sz-timezone elements"), sessionize.showLocalTimezone = !1), sessionize.showLocalTimezone) && (n = document.querySelectorAll("[data-sztz]"), t = [], n.forEach(function (n) {
t.includes(n.dataset.sztz) || t.push(n.dataset.sztz);
n.style.opacity = 0;
}), i = new XMLHttpRequest, r = new FormData, r.append("timezone", u), r.append("values", t), i.onreadystatechange = function () {
if (this.readyState === 4 && this.status === 200) {
var t = JSON.parse(this.responseText);
sessionize.localTimezone = t.localTimezone;
sessionize.hasDifferentTimes = !1;
n.forEach(function (n) {
n.dataset.sztzE = n.innerText;
n.dataset.sztzL = t.values[n.dataset.sztz];
n.style.opacity = 1;
n.removeAttribute("data-sztz");
n.dataset.sztzE !== n.dataset.sztzL && (sessionize.hasDifferentTimes = !0);
});
sessionize.hasDifferentTimes && (sessionize.showTimes(sessionize.timeMode), sessionize.eventCityName && sessionize.localCityName && document.querySelector(".sz-timezone") && (document.querySelector(".sz-timezone .sz-timezone__radio--local .sz-timezone__name").innerHTML = sessionize.localCityName, document.querySelector(".sz-timezone .sz-timezone__radio--local .sz-timezone__tooltip").innerHTML = sessionize.localTimezone, document.querySelector(".sz-timezone .sz-timezone__radio--local input[type=\"radio\"]").onchange = function () {
sessionize.showTimes("local");
}, document.querySelector(".sz-timezone .sz-timezone__radio--event .sz-timezone__name").innerHTML = sessionize.eventCityName, document.querySelector(".sz-timezone .sz-timezone__radio--event .sz-timezone__tooltip").innerHTML = sessionize.eventTimezone, document.querySelector(".sz-timezone .sz-timezone__radio--event input[type=\"radio\"]").onchange = function () {
sessionize.showTimes("event");
}, document.querySelector(".sz-timezone").style.display = ""));
} else (this.status === 404 || this.status === 500) && n.forEach(function (n) {
n.style.opacity = 1;
});
}, i.open("POST", "https://sessionize.com/api/v2/sztz", !0), i.send(r));
};
sessionize.showTimes = function (n) {
var t;
sessionize.timeMode = n;
n === "event" ? (t = document.querySelectorAll("[data-sztz-e]"), t.forEach(function (n) {
return n.innerText = n.dataset.sztzE;
})) : n === "local" && (t = document.querySelectorAll("[data-sztz-l]"), t.forEach(function (n) {
return n.innerText = n.dataset.sztzL;
}));
};
sessionize.manageActive = function () {
var n = document.querySelectorAll("[data-szactive]");
n.forEach(function (n) {
var t = n.dataset.szactive.split("|"), r = new Date(t[0]),
u = new Date(t[1]), i = new Date;
r <= i && i <= u ? n.classList.remove("is-disabled") : n.classList.add("is-disabled");
});
window.setTimeout(sessionize.manageActive, 2e4);
};
sessionize.onLoad = function () {
var n;
sessionize.initTabs();
sessionize.getLocalTimes();
sessionize.manageActive();
window.location.hash && window.location.hash.lastIndexOf("#sz-tab-", 0) === 0 ? sessionize.tabChange(window.location.hash) : window.location.hash && window.location.hash.lastIndexOf("#sz-speaker-", 0) === 0 ? (n = window.location.hash.substr(12), sessionize.showModal("a2sw0wks", "speaker", n)) : window.location.hash && window.location.hash.lastIndexOf("#sz-session-", 0) === 0 && (n = window.location.hash.substr(12), sessionize.showModal("a2sw0wks", "session", n));
sessionize.event && window.dispatchEvent(sessionize.event);
};
typeof Event == "function" && (sessionize.event = new Event("sessionize.onload"));
typeof sessionize.loader == "undefined" && (window.onload = sessionize.onLoad);

sessionize.eventTimezone = "UTC+02";
sessionize.eventCityName = "L&#39;Hospitalet de Llobregat";
sessionize.showLocalTimezone = false;
sessionize.todayId = 45068;

//]]>

</script>
</body>
</html>
3 changes: 2 additions & 1 deletion src/components/Navigation/NavigationData.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import {
ROUTE_CODE_OF_CONDUCT,
ROUTE_HOME,
ROUTE_JOB_OFFERS,
ROUTE_SCHEDULE,
ROUTE_SPEAKERS,
ROUTE_SPONSORSHIP,
ROUTE_TALKS,
Expand All @@ -20,7 +21,7 @@ export const navigationItems2025: NavigationItem[] = [
{ id: "Home", link: ROUTE_HOME },
{ id: "Code of Conduct", link: ROUTE_CODE_OF_CONDUCT },
{ id: "Sponsors", link: "/#sponsors" },
//{ id: "SCHEDULE", link: ROUTE_SCHEDULE },
{ id: "SCHEDULE", link: ROUTE_SCHEDULE },
{ id: "Talks", link: ROUTE_TALKS },
{ id: "Workshops", link: ROUTE_WORKSHOPS },
{ id: "JOB OFFERS", link: ROUTE_JOB_OFFERS },
Expand Down
2 changes: 1 addition & 1 deletion src/data/2025.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
},
"linkedin": "https://www.linkedin.com/company/devbcn",
"schedule": {
"enabled": false
"enabled": true
},
"sessionizeUrl": "https://sessionize.com/api/v2/xhudniix",
"showCountdown": true,
Expand Down
24 changes: 12 additions & 12 deletions src/views/Schedule/Schedule.tsx
Original file line number Diff line number Diff line change
@@ -1,30 +1,30 @@
import { MOBILE_BREAKPOINT } from "../../constants/BreakPoints";
import { Color } from "../../styles/colors";
import { MOBILE_BREAKPOINT } from "@constants/BreakPoints";
import { Color } from "@styles/colors";
import React, { FC } from "react";
import LessThanBlueWhiteIcon from "../../assets/images/MoreThanBlueWhiteIcon.svg";
import MoreThanBlueWhiteIcon from "../../assets/images/LessThanBlueWhiteIcon.svg";
import SectionWrapper from "../../components/SectionWrapper/SectionWrapper";
import TitleSection from "../../components/SectionTitle/TitleSection";
import LessThanBlueWhiteIcon from "@assets/images/MoreThanBlueWhiteIcon.svg";
import MoreThanBlueWhiteIcon from "@assets/images/LessThanBlueWhiteIcon.svg";
import SectionWrapper from "@components/SectionWrapper/SectionWrapper";
import TitleSection from "@components/SectionTitle/TitleSection";
import { useWindowSize } from "react-use";
import data from "../../data/2024.json";
import data from "@data/2025.json";

import * as Sentry from "@sentry/react";
import { Link } from "react-router";
import {
StyledLessIcon,
StyledMoreIcon,
StyledScheduleSection,
} from "../../styles/Schedule/Schedule.style";
import { useDocumentTitleUpdater } from "../../hooks/useDocumentTitleUpdate";
} from "@styles/Schedule/Schedule.style";
import { useDocumentTitleUpdater } from "@hooks/useDocumentTitleUpdate";

const Schedule: FC<React.PropsWithChildren<unknown>> = () => {
const { width } = useWindowSize();

React.useEffect(() => {
fetch("https://sessionize.com/api/v2/w8mdb9k5/view/GridSmart")
fetch("https://sessionize.com/api/v2/kdiixcgx/view/GridSmart")
.then((value) => value.text())
.then((value) => {
const sched = document.getElementById("#schedule");
const sched = document.getElementById("schedule");
if (sched !== null) {
sched.innerHTML = value;
}
Expand Down Expand Up @@ -63,7 +63,7 @@ const Schedule: FC<React.PropsWithChildren<unknown>> = () => {
>
📅 See Live schedule
</Link>
<div style={{ width: "100%", margin: "0 auto" }} id="#schedule">
<div style={{ width: "100%", margin: "0 auto" }} id="schedule">
&nbsp;
</div>
</>
Expand Down
Loading