Small fixups. Added socials

This commit is contained in:
Vince 2021-02-22 15:12:40 +11:00
parent e644b48c3b
commit 86adce2a38
12 changed files with 231 additions and 93 deletions

View File

@ -112,6 +112,11 @@ body {
height: 100vh;
min-width: 350px;
background-color: #dbf7f5;
// Fix for Safari
// https://stackoverflow.com/a/37365794
font-weight: 400;
text-rendering: optimizeLegibility;
}
.hide-scroll {

View File

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
enable-background="new 0 0 24 24"
viewBox="0 0 24 24"
version="1.1"
id="svg10"
sodipodi:docname="discord.svg"
inkscape:version="1.0.1 (0767f8302a, 2020-10-17)">
<metadata
id="metadata16">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs14" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1014"
id="namedview12"
showgrid="false"
inkscape:zoom="1.1973859"
inkscape:cx="17.468796"
inkscape:cy="297.60422"
inkscape:window-x="1080"
inkscape:window-y="34"
inkscape:window-maximized="0"
inkscape:current-layer="svg10" />
<path
id="path2"
style="fill:#000000;fill-opacity:1;stroke-width:1.17023"
d="m 9.6910933,5.7745426 c -0.409887,0.00701 -2.1667006,0.1203717 -4.0436119,1.4863287 0,0 -2.1451223,3.6792087 -2.1451223,8.2150407 0,0 1.1889618,2.036281 4.4492372,2.113517 0,0 0.4763135,-0.623788 0.95728,-1.172629 -1.8314178,-0.54767 -2.5441044,-1.642966 -2.5441044,-1.642966 0,0 0.1591832,0.07718 0.3979112,0.233991 h 0.070175 c 0.036277,0 0.052738,0.01759 0.07146,0.03514 v 0.007 c 0.018724,0.01872 0.035077,0.03504 0.071355,0.03504 3.8933729,1.579818 7.1477699,1.944933 10.8609269,-0.393197 0,0 -0.713868,1.095402 -2.621352,1.643073 0.393199,0.545328 0.945602,1.170164 0.945602,1.170164 3.261446,-0.07022 4.528811,-2.106369 4.600195,-2.019772 0,-4.528811 -2.157978,-8.2150398 -2.157978,-8.2150398 C 16.67452,5.8601202 14.872352,5.7968804 14.531814,5.7957104 l -0.217598,0.2141695 c 2.463345,0.7021413 3.655772,1.7986368 3.655772,1.7986368 C 11.547735,4.647711 6.2477719,7.7055243 6.1260673,7.7312706 c 5e-7,0 1.1901409,-1.1725611 3.81498,-1.7986374 L 9.7806603,5.7747571 c 0,0 -0.03101,-0.00122 -0.08957,-2.145e-4 z m 4.8618267,0.00139 -0.01403,0.014035 0.03857,-0.014035 z M 9.3886423,10.940104 c 0.8320367,0 1.5049707,0.702167 1.5049707,1.562291 0,0.865973 -0.677541,1.568076 -1.5095777,1.568076 -0.832038,0 -1.5096854,-0.702053 -1.5096854,-1.561007 0,-0.865973 0.6776474,-1.565825 1.5096854,-1.565825 z m 5.3995537,0 c 0.835548,0 1.509577,0.702167 1.509577,1.562291 0,0.865973 -0.677539,1.568076 -1.509577,1.568076 -0.832037,0 -1.509685,-0.702053 -1.509685,-1.561007 0.0023,-0.865973 0.681158,-1.565825 1.509685,-1.565825 z" />
</svg>

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@ -0,0 +1,52 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
viewBox="0 0 512 512"
version="1.1"
id="svg10"
sodipodi:docname="reddit.svg"
inkscape:version="1.0.1 (0767f8302a, 2020-10-17)">
<metadata
id="metadata16">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs14" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1014"
id="namedview12"
showgrid="false"
inkscape:zoom="0.63500977"
inkscape:cx="166.53679"
inkscape:cy="338.58008"
inkscape:window-x="1080"
inkscape:window-y="34"
inkscape:window-maximized="0"
inkscape:current-layer="svg10" />
<path
id="path2"
style="stroke-width:0.989794"
d="m 365.99626,96.552289 c -10.38895,0 -19.25365,6.032561 -23.56078,14.747371 L 281.01457,98.227698 c -1.7244,-0.355704 -3.50009,-0.05059 -4.96931,0.912134 -1.46923,0.958868 -2.48137,2.431478 -2.8371,4.152028 0,0 -18.447,87.87562 -18.447,88.38212 -39.47572,1.013 -74.95416,12.82375 -100.59597,31.3205 -6.63858,-6.38725 -15.6085,-10.28741 -25.54122,-10.28741 -20.4222,0 -36.942167,16.57021 -36.942167,36.94215 0,15.00154 8.968967,27.92297 21.840147,33.69934 -0.55676,3.64986 -0.86105,7.40035 -0.86105,11.20101 0,56.85894 66.1846,102.92666 147.82699,102.92666 81.64242,0 147.82701,-46.06772 147.82701,-102.92666 0,-3.75038 -0.30575,-7.45044 -0.8625,-11.10031 12.8209,-5.77637 21.8912,-18.69796 21.8912,-33.80004 0,-20.42219 -16.51755,-36.94215 -36.94361,-36.94215 -9.98298,0 -19.00335,3.95446 -25.64191,10.38812 -25.23586,-18.24543 -60.0517,-30.00236 -98.81987,-31.3672 l 16.82267,-79.21117 54.98781,11.70742 c 0.65728,13.98469 12.10823,25.1355 26.24757,25.1355 14.59558,0 26.40373,-11.80815 26.40373,-26.40374 0,-14.59557 -11.80815,-26.403711 -26.40373,-26.403711 z M 202.36088,249.64922 c 14.54531,10e-6 26.40226,11.85841 26.40226,26.40373 0,14.54531 -11.85695,26.40373 -26.40226,26.40373 -14.54145,0 -26.40372,-11.86228 -26.40372,-26.40373 0,-14.54532 11.86227,-26.40373 26.40372,-26.40373 z m 116.15333,0 c 14.54533,0 26.40373,11.85841 26.40373,26.40373 0,14.54145 -11.86227,26.40373 -26.40373,26.40373 -14.5453,0 -26.40372,-11.86228 -26.40372,-26.40373 0,-14.54532 11.85842,-26.40373 26.40372,-26.40373 z m -115.87458,84.44173 c 1.74809,0 3.49584,0.67187 4.83942,2.01545 11.35167,11.35167 35.62563,15.40265 53.00884,15.40265 17.33299,0 41.65572,-4.05098 53.0074,-15.40265 2.68713,-2.68715 6.99462,-2.68715 9.68176,0 2.63299,2.68326 2.63299,6.99023 0,9.67738 -18.0444,17.99023 -52.55537,19.40874 -62.68916,19.40874 -10.13375,0 -44.69596,-1.41851 -62.68621,-19.40874 -2.68713,-2.68328 -2.68713,-6.99025 0,-9.67738 1.34163,-1.34358 3.08986,-2.01545 4.83795,-2.01545 z" />
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

@ -1,49 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
viewBox="0 0 750 750"
xml:space="preserve"
id="svg2"
fill="#1F1C47"
version="1.1"
sodipodi:docname="session.svg"
inkscape:version="1.0.1 (0767f8302a, 2020-10-17)"><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
id="namedview12"
showgrid="false"
id="metadata8"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs6"><marker
style="overflow:visible"
id="Arrow1Lstart"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow1Lstart"
inkscape:isstock="true"><path
transform="scale(0.8) translate(12.5,0)"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
id="path851" /></marker><clipPath
id="clipPath18"
clipPathUnits="userSpaceOnUse"><path
id="path16"
d="M 0,336.305 H 303.064 V 0 H 0 Z" /></clipPath></defs><g
id="g12"
style="fill-rule:evenodd;stroke-width:5.57474871;stroke-miterlimit:4;stroke-dasharray:none"
transform="matrix(1.3333333,0,0,-1.3333333,166.25866,593.14339)"><path
id="path22"
style="fill:#1f1c47;fill-opacity:1;fill-rule:evenodd;stroke:#1f1c47;stroke-width:8.50393722;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 216.4556,21.0229 H 69.2046 c -25.182,0 -46.881,19.311 -48.123,44.461 -1.328,26.885 20.162,49.182 46.765,49.182 h 84.804 c 5.189,0 9.395,4.206 9.395,9.394 v 69.229 l 83.435,-46.234 c 22.062,-12.225 35.95,-35.251 36.54,-60.386 0.85,-36.095 -29.461,-65.646 -65.565,-65.646 m -158.872,168.227 c -22.062,12.225 -35.95,35.251 -36.541,60.386 -0.849,36.095 29.462,65.646 65.565,65.646 h 147.251 c 25.182,0 46.881,-19.311 48.124,-44.462 1.328,-26.884 -20.162,-49.181 -46.764,-49.181 0,0 -60.987,-0.01 -84.808,-0.014 -5.186,-0.001 -9.374,-4.206 -9.376,-9.392 l -0.016,-69.217 z m 198.085,-23.807 -63.478,35.173 h 43.028 c 37.408,0 67.845,30.434 67.845,67.843 0,37.408 -30.437,67.846 -67.845,67.846 H 84.9946 c -46.864,0 -84.995,-38.131 -84.995,-84.995 0,-33.425 18.162,-64.248 47.396,-80.449 l 63.477,-35.172 h -43.026 c -37.41,0 -67.847,-30.435 -67.847,-67.843 0,-37.408 30.437,-67.846 67.847,-67.846 h 150.222 c 46.866,0 84.995,38.13 84.995,84.995 0,33.425 -18.162,64.248 -47.395,80.448" /></g></svg>

Before

Width:  |  Height:  |  Size: 3.0 KiB

View File

@ -0,0 +1,52 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
viewBox="0 -77 512.00213 512"
version="1.1"
id="svg6"
sodipodi:docname="youtube.svg"
inkscape:version="1.0.1 (0767f8302a, 2020-10-17)">
<metadata
id="metadata12">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs10" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1014"
id="namedview8"
showgrid="false"
inkscape:zoom="0.63500977"
inkscape:cx="-77.191274"
inkscape:cy="522.99039"
inkscape:window-x="1080"
inkscape:window-y="34"
inkscape:window-maximized="0"
inkscape:current-layer="svg6" />
<path
id="path2"
style="stroke-width:0.674603"
d="m 255.99747,58.325191 c 0,0 -108.11213,3e-5 -135.14101,7.114973 -14.50922,3.981734 -26.460471,15.932 -30.442204,30.725811 -7.112309,27.026245 -7.112009,83.076205 -7.112009,83.076205 0,0 -3e-4,56.33192 7.112009,83.07621 3.984368,14.79381 15.647734,26.45981 30.444184,30.44418 27.31084,7.3969 135.14199,7.3966 135.14199,7.3966 0,0 108.11312,-3e-5 135.142,-7.11497 14.79645,-3.98173 26.45981,-15.6474 30.44418,-30.44121 7.11231,-27.02889 7.112,-83.07621 7.112,-83.07621 0,0 0.28457,-56.33456 -7.11497,-83.360805 C 417.60191,81.369528 405.93624,69.706168 391.14243,65.721798 364.11355,58.324893 255.99747,58.325191 255.99747,58.325191 Z m -34.42264,69.135799 89.90361,51.78119 -89.90361,51.78119 z" />
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -5,7 +5,7 @@ import { ScreenContext } from '../contexts/screen';
import { expandSideMenu } from '../state/navigation';
export function HomeHeroBubble() {
const { isMobile, isTablet, isHuge } = useContext(ScreenContext);
const { isMobile, isTablet, isDesktop, isHuge } = useContext(ScreenContext);
const dispatch = useDispatch();
return (
@ -13,17 +13,21 @@ export function HomeHeroBubble() {
style={{
transform:
isMobile || isTablet
? 'translateY(-40vh)'
? 'translateY(min(40vh, 20rem))'
: isHuge
? 'translateY(-40vh)'
: 'translateY(-50vh)',
? 'translateY(50%)'
: 'translateY(33%)',
maxHeight: '400px',
}}
onClick={() => dispatch(expandSideMenu())}
className="absolute bottom-0 z-40 px-10 duration-300 cursor-pointer"
className={classNames(
'absolute h-full z-40 px-10 duration-300',
!isDesktop && 'cursor-pointer',
)}
>
<div
className={classNames(
'px-4 py-2 leading-tight text-base border rounded-lg bg-opacity-90 border-secondary bg-alt front-prompt text-primary animate-float',
'px-4 py-2 leading-tight text-base border rounded-lg bg-opacity-90 border-secondary bg-alt front-prompt text-primary animate-float',
// isMobile ? 'text-base' : 'text-xl',
)}
>

View File

@ -46,9 +46,8 @@ export function DesktopHeader() {
<a
className={classNames(
'uppercase whitespace-no-wrap cursor-pointer',
item.subtle
? 'text-xs hover:underline'
: 'duration-300 text-base font-bold py-1 px-2 hover:bg-primary rounded hover:bg-opacity-10',
'duration-300 text-base font-bold py-1 px-2 hover:bg-primary',
'rounded hover:bg-opacity-10',
)}
href={item.external ? item.href : undefined}
target={item.newTab ? '_blank' : undefined}

View File

@ -4,9 +4,12 @@ import { useRouter } from 'next/router';
import React, { useContext } from 'react';
import { useDispatch, useSelector } from 'react-redux';
import { v4 as uuid } from 'uuid';
import DiscordSVG from '../../assets/svgs/socials/discord.svg';
import GithubSVG from '../../assets/svgs/socials/github.svg';
import RedditSVG from '../../assets/svgs/socials/reddit.svg';
import TelegramSVG from '../../assets/svgs/socials/telegram.svg';
import TwitterSVG from '../../assets/svgs/socials/twitter.svg';
import YouTubeSVG from '../../assets/svgs/socials/youtube.svg';
import { NAVIGATION } from '../../constants';
import { ScreenContext } from '../../contexts/screen';
import { IState } from '../../state/reducers';
@ -51,20 +54,19 @@ export function SideMenuInner() {
</div>
<Contained>
<div className="flex flex-col w-full mb-4 space-y-4">
<div className="flex flex-col w-full mb-4 space-y-6">
{!isDesktop && (
<div
className={classNames(
'flex flex-col pt-8 font-medium uppercase font-prompt',
isDesktop ? 'text-xs' : 'text-base',
'flex flex-col pt-8 font-medium uppercase font-prompt text-lg',
)}
>
{_.chunk(NAVIGATION.MENU_ITEMS, 3).map(group => (
<div key={uuid()} className="flex justify-between space-x-2 ">
{_.chunk(NAVIGATION.MENU_ITEMS, 2).map(group => (
<div key={uuid()} className="flex space-x-4">
{group.map(item => (
<a key={item.label} href={item.href}>
{item.label}
</a>
<div key={item.label} className="flex-1">
<a href={item.href}>{item.label}</a>
</div>
))}
</div>
))}
@ -87,24 +89,45 @@ export function SideMenuInner() {
}
const SocialsRow = () => {
const { isDesktop } = useContext(ScreenContext);
return (
<div className="flex pt-3 pb-6 space-x-3">
<div
className={classNames(
'flex pt-3 pb-6 space-x-3 justify-between',
isDesktop && 'justify-between',
)}
>
<a href="https://t.me/Oxen_Community" target="_blank" rel="noreferrer">
<TelegramSVG className="h-10 placeholder-current duration-300 border rounded-full cursor-pointer fill-current stroke-current hover:bg-primary hover:text-secondary border-primary" />
<TelegramSVG className="h-12 placeholder-current duration-300 border rounded-full cursor-pointer fill-current stroke-current tablet:h-10 hover:bg-primary hover:text-secondary border-primary" />
</a>
<a href="https://twitter.com/Oxen_io" target="_blank" rel="noreferrer">
<TwitterSVG className="h-10 placeholder-current duration-300 border rounded-full cursor-pointer fill-current stroke-current hover:bg-primary hover:text-secondary border-primary" />
<TwitterSVG className="h-12 placeholder-current duration-300 border rounded-full cursor-pointer fill-current stroke-current tablet:h-10 hover:bg-primary hover:text-secondary border-primary" />
</a>
<a href="https://github.com/oxen-io" target="_blank" rel="noreferrer">
<GithubSVG className="h-10 placeholder-current duration-300 border rounded-full cursor-pointer fill-current stroke-current hover:bg-primary hover:text-secondary border-primary" />
<GithubSVG className="h-12 placeholder-current duration-300 border rounded-full cursor-pointer fill-current stroke-current tablet:h-10 hover:bg-primary hover:text-secondary border-primary" />
</a>
<a
href="https://discord.com/invite/67GXfD6"
target="_blank"
rel="noreferrer"
>
<DiscordSVG className="h-12 placeholder-current duration-300 border rounded-full cursor-pointer fill-current stroke-current tablet:h-10 hover:bg-primary hover:text-secondary border-primary" />
</a>
<a
href="https://www.youtube.com/channel/UCN7LL0dEffQ7FSjbY5wwlnw"
target="_blank"
rel="noreferrer"
>
<YouTubeSVG className="h-12 placeholder-current duration-300 border rounded-full cursor-pointer fill-current stroke-current tablet:h-10 hover:bg-primary hover:text-secondary border-primary" />
</a>
<a
href="https://www.reddit.com/r/oxen_io/"
target="_blank"
rel="noreferrer"
>
<RedditSVG className="h-12 placeholder-current duration-300 border rounded-full cursor-pointer fill-current stroke-current tablet:h-10 hover:bg-primary hover:text-secondary border-primary" />
</a>
{/* <a
href="https://loki.opensession.id/"
target="_blank"
rel="noreferrer"
>
<SessionSVG className="h-10 placeholder-current duration-300 border rounded-full cursor-pointer fill-current stroke-current hover:bg-primary hover:text-secondary border-primary" />
</a> */}
</div>
);
};

View File

@ -2,7 +2,7 @@ const UI = {
MOBILE_BREAKPOINT: 500,
TABLET_BREAKPOINT: 715,
DESKTOP_BREAKPOINT: 1100,
MAX_CONTENT_WIDTH: 1000,
MAX_CONTENT_WIDTH: 1100,
MAX_ARTICLE_WIDTH: 900,
PAGE_CONTAINED_PADDING_VW: 5,

View File

@ -133,7 +133,7 @@ function Roadmap() {
<div className="flex flex-col px-6 pb-6 space-y-10">
<div>
<h2 className="mt-6 mb-3 text-2xl font-medium font-prompt text-primary">
<h2 className="mt-6 mb-3 text-3xl font-medium font-prompt text-primary">
Session in 2021
</h2>
<img
@ -144,7 +144,7 @@ function Roadmap() {
</div>
<div>
<h2 className="mt-6 mb-3 text-2xl font-medium font-prompt text-primary">
<h2 className="mt-6 mb-3 text-3xl font-medium font-prompt text-primary">
Lokinet in 2021
</h2>
<img

View File

@ -40,7 +40,7 @@ export async function getStaticPaths() {
params: { slug: item.slug },
}));
return { paths, fallback: false };
return { paths, fallback: true };
}
export async function getStaticProps({ params }) {

View File

@ -66,18 +66,17 @@ export class CmsApi {
}
public async fetchBlogBySlug(slug: string): Promise<IPost> {
return this.client
.getEntries({
content_type: 'post',
'fields.slug[in]': slug,
})
.then(entries => {
if (entries && entries.items && entries.items.length > 0) {
const post = this.convertPost(entries.items[0]);
return post;
}
return null;
});
const entries = await this.client.getEntries({
content_type: 'post',
'fields.slug[in]': slug,
});
if (entries?.items?.length > 0) {
const post = this.convertPost(entries.items[0]);
return post;
}
return null;
}
public async fetchBlogEntriesByTag(tag: string): Promise<IPost[]> {