Fix bug where iframe isn't fully destroyed, add FAQ.

This commit is contained in:
wearrrrr 2024-02-11 16:49:57 -06:00
parent e471f4a03f
commit 4a3faa9761
8 changed files with 125 additions and 57 deletions

View file

@ -16,52 +16,52 @@ const t = useTranslations(lang);
</div> </div>
<div class="footer-madeby"> <div class="footer-madeby">
<Link href="https://wearr.dev" newTab linkTextContent={t("footer.madeWithLove")}> <Link href="https://wearr.dev" newTab linkTextContent={t("footer.madeWithLove")} />
</div> </div>
</div> <div class="footer-bottom">
<div class="footer-bottom"> <div class="footer-links">
<div class="footer-links"> <Link href="https://titaniumnetwork.org" newTab linkTextContent={t("footer.poweredBy")} />
<Link href="https://titaniumnetwork.org" newTab linkTextContent={t("footer.poweredBy")}>
<div class="footer-copyright">
<p>&copy; {t("footer.aluProject")} 2024</p>
</div>
</div>
</div> </div>
<div class="footer-copyright"> <style>
<p>&copy; {t("footer.aluProject")} 2024</p> .wave-svg-container {
</div> bottom: 0;
left: 0;
position: absolute;
width: 100%;
z-index: -1;
overflow: hidden;
height: 300px;
filter: brightness(1.5);
}
.footer {
display: flex;
flex-direction: column;
justify-content: space-around;
color: var(--text-color);
position: relative;
padding-top: 200px;
gap: 50px;
}
.footer-top,
.footer-bottom {
width: 90%;
margin: 0 auto;
}
.footer-title {
font-size: 20px;
}
a {
color: var(--text-color);
}
</style>
</div> </div>
</div> </div>
<style>
.wave-svg-container {
bottom: 0;
left: 0;
position: absolute;
width: 100%;
z-index: -1;
overflow: hidden;
height: 300px;
filter: brightness(1.5);
}
.footer {
display: flex;
flex-direction: column;
justify-content: space-around;
color: var(--text-color);
position: relative;
padding-top: 150px;
gap: 50px;
}
.footer-top,
.footer-bottom {
width: 90%;
margin: 0 auto;
}
.footer-title {
font-size: 20px;
}
a {
color: var(--text-color);
}
</style>

View file

@ -1,5 +1,5 @@
<script src="/uv/uv.bundle.js" transition:persist></script> <script src="/uv/uv.bundle.js" transition:persist is:inline></script>
<script src="/uv.config.js" transition:persist></script> <script src="/uv.config.js" transition:persist is:inline></script>
<script> <script>
//@ts-nocheck //@ts-nocheck
let form = document.querySelector("form"); let form = document.querySelector("form");
@ -60,6 +60,22 @@
topBar.style.opacity = 0; topBar.style.opacity = 0;
iframe.style.pointerEvents = "none"; iframe.style.pointerEvents = "none";
topBar.style.pointerEvents = "none"; topBar.style.pointerEvents = "none";
setTimeout(() => {
iframe.remove();
topBar.remove();
// recreate them
iframe = document.createElement("iframe");
iframe.id = "proxy-frame";
iframe.style.opacity = 0;
iframe.style.pointerEvents = "none";
topBar = document.createElement("div");
topBar.id = "top-bar";
topBar.style.opacity = 0;
topBar.style.pointerEvents = "none";
document.body.appendChild(topBar);
document.body.appendChild(iframe);
}, 500);
}); });
let urlText = document.createElement("p"); let urlText = document.createElement("p");
urlText.classList.add("url-text"); urlText.classList.add("url-text");

View file

@ -47,7 +47,7 @@ const t = useTranslations(lang);
<div id="current-content"></div> <div id="current-content"></div>
</div> </div>
<script is:inline> <script is:inline>
document.addEventListener("astro:before-swap", () => { document.addEventListener("astro:after-swap", () => {
window.currentlySelectedTab = ""; window.currentlySelectedTab = "";
document.removeEventListener("setting-tabChange", determineListener); document.removeEventListener("setting-tabChange", determineListener);
}); });

View file

@ -12,6 +12,11 @@
"menu.welcome": "Welcome to Alu", "menu.welcome": "Welcome to Alu",
"menu.search": "Search...", "menu.search": "Search...",
"faq.whatIsAProxy": "What is a proxy?",
"faq.whatIsAProxy.answer": "A proxy is a method of making your internet traffic anonymous by sending your request to a server (proxy), having that make the request, and then send it back to you! This allows for a much larger level of security, as well as bypassing website restrictions in public spaces and censorship.",
"faq.whyIsAluSoSlow": "Why is Alu so slow?",
"faq.whyIsAluSoSlow.answer": "This could be for a number of reasons, but it is most likely due to the proxy you are using. If you are far away from where Alu is hosted, it will take longer for the request to be sent and received. If the proxy you are using is congested with traffic, it will also be slower.",
"footer.brand": "Alu", "footer.brand": "Alu",
"footer.madeWithLove": "Made with ❤️ by wearr", "footer.madeWithLove": "Made with ❤️ by wearr",
"footer.poweredBy": "Powered by Ultraviolet", "footer.poweredBy": "Powered by Ultraviolet",

View file

@ -12,6 +12,12 @@
"menu.welcome": "アルーにようこそ", "menu.welcome": "アルーにようこそ",
"menu.search": "検索...", "menu.search": "検索...",
"faq.whatIsAProxy": "プロキシとは何ですか?",
"faq.whatIsAProxy.answer": "プロキシは、ウェブサイトにアクセスするための中継サーバーです。プロキシを使用すると、ウェブサイトにアクセスする際に自分のIPアドレスを隠すことができます。",
"faq.whyIsAluSoSlow": "なぜアルーは遅いのですか?",
"faq.whyIsAluSoSlow.answer": "アルーは、プロキシを使用してウェブサイトにアクセスするため、ウェブサイトの読み込みに時間がかかることがあります。また、アルーはまだ開発中のため、パフォーマンスが低いことがあります。",
"footer.brand": "アルー", "footer.brand": "アルー",
"footer.madeWithLove": "wearrによる❤で作られました", "footer.madeWithLove": "wearrによる❤で作られました",
"footer.poweredBy": "「ウルトラバイオレット」による駆動", "footer.poweredBy": "「ウルトラバイオレット」による駆動",

View file

@ -138,14 +138,6 @@ const { title, optionalPreloads } = Astro.props;
::-webkit-scrollbar { ::-webkit-scrollbar {
display: none; display: none;
} }
.main-content {
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
width: 100%;
height: 60vh;
}
#proxy-frame { #proxy-frame {
display: block; display: block;
position: absolute; position: absolute;

View file

@ -2,6 +2,7 @@
import Layout from "../../layouts/Layout.astro"; import Layout from "../../layouts/Layout.astro";
import { getLangFromUrl, useTranslations } from "../../i18n/utils"; import { getLangFromUrl, useTranslations } from "../../i18n/utils";
import Link from "../../components/Link.astro";
const lang = getLangFromUrl(Astro.url); const lang = getLangFromUrl(Astro.url);
const t = useTranslations(lang); const t = useTranslations(lang);
@ -19,12 +20,42 @@ export function getStaticPaths() {
<div id="top-bar"></div> <div id="top-bar"></div>
<iframe title="proxy-iframe" id="proxy-frame"></iframe> <iframe title="proxy-iframe" id="proxy-frame"></iframe>
</form> </form>
<div class="faq-section">
<div class="faq-card">
<h2>{t("faq.whatIsAProxy")}</h2>
<p>{t("faq.whatIsAProxy.answer")}</p>
</div>
<div class="faq-card">
<h2>{t("faq.whyIsAluSoSlow")}</h2>
<p>{t("faq.whyIsAluSoSlow.answer")}</p>
</div>
<div class="faq-card faq-large">
<h2>How can I contribute to the development of Alu?</h2>
<p>
Spreading the word of Alu is a great start, but if you really enjoy Alu, and want private
links, consider supporting me through Patreon! You can support me <Link
href="https://www.patreon.com/wearr/membership"
newTab
linkTextContent="Here!"
/>, thank you for helping to make Alu great!
</p>
</div>
</div>
</div> </div>
</Layout> </Layout>
<style> <style>
.main-content {
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
width: 100%;
height: 75vh;
margin-top: 50px;
}
form { form {
width: 30%; width: 40%;
} }
.title-text { .title-text {
@ -67,4 +98,21 @@ export function getStaticPaths() {
transition: 250ms ease-in-out; transition: 250ms ease-in-out;
text-align: center; text-align: center;
} }
.faq-section {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 20px;
margin: 0 auto;
width: 90%;
}
.faq-card {
background-color: var(--dropdown-background-color);
border-radius: 10px;
padding: 20px;
color: var(--text-color);
}
.faq-large {
grid-column: span 2;
}
</style> </style>

View file

@ -1,6 +1,7 @@
{ {
"extends": "astro/tsconfigs/strict", "extends": "astro/tsconfigs/strict",
"compilerOptions": { "compilerOptions": {
"verbatimModuleSyntax": false "verbatimModuleSyntax": false,
"allowSyntheticDefaultImports": true
} }
} }