Compare commits

..

No commits in common. "80f05bb514f44905835c8571dd5d94cba9a32d53" and "febdbb942189f1a666de9641c96d1f38c0d85549" have entirely different histories.

4 changed files with 27 additions and 37 deletions

View file

@ -51,17 +51,29 @@
<script lang="ts" setup> <script lang="ts" setup>
import { FetchError } from 'ofetch'; import { FetchError } from 'ofetch';
import type { StatsResponse } from '~/types/interfaces';
const instanceUrl = ref<string | null | undefined>(null); const instanceUrl = ref<string | null | undefined>(null);
const instanceUrlInput = ref<string>(); const instanceUrlInput = ref<string>();
const instanceError = ref<string>(); const instanceError = ref<string>();
const requestUrl = useRequestURL();
const apiVersion = useRuntimeConfig().public.apiVersion; const apiVersion = useRuntimeConfig().public.apiVersion;
const apiBase = useCookie("api_base"); const apiBase = useCookie("api_base");
const registrationEnabled = useState("registrationEnabled", () => true); const gorbTxtError = ref<string>("");
const auth = useAuth(); const auth = useAuth();
const { status, data: gorbTxt } = await useFetch(`${requestUrl.protocol}//${requestUrl.host}/.well-known/gorb.txt`, { responseType: "text" });
if (status.value == "success" && gorbTxt.value) {
console.log("got gorb.txt:", gorbTxt.value);
const parsed = parseWellKnown(gorbTxt.value as string);
if (parsed.ApiBaseUrl) {
apiBase.value = `${parsed.ApiBaseUrl}/${apiVersion}`;
console.log("set apiBase to:", parsed.ApiBaseUrl);
}
} else {
gorbTxtError.value = "Failed to find that instance.";
}
onMounted(async () => { onMounted(async () => {
const cookie = useCookie("instance_url").value; const cookie = useCookie("instance_url").value;
instanceUrl.value = cookie; instanceUrl.value = cookie;
@ -87,11 +99,6 @@ async function selectInstance(e: Event) {
instanceUrl.value = origin; instanceUrl.value = origin;
useCookie("instance_url").value = origin; useCookie("instance_url").value = origin;
console.log("set instance url to:", origin); console.log("set instance url to:", origin);
const { status, data, error } = await useFetch<StatsResponse>(`${apiBase.value}/stats`);
if (status.value == "success" && data.value) {
registrationEnabled.value = data.value.registration_enabled;
console.log("set registration enabled value to:", data.value.registration_enabled);
}
return; return;
} }
instanceError.value = "That URL is not a valid instance."; instanceError.value = "That URL is not a valid instance.";

View file

@ -3,25 +3,6 @@ export default defineNuxtRouteMiddleware(async (to, from) => {
const loading = useState("loading"); const loading = useState("loading");
const accessToken = useCookie("access_token").value; const accessToken = useCookie("access_token").value;
if (["/login", "/register"].includes(to.path)) { if (["/login", "/register"].includes(to.path)) {
console.log("path is login or register");
const apiBase = useCookie("api_base");
console.log("apiBase gotten:", apiBase.value);
if (!apiBase.value) {
const requestUrl = useRequestURL();
console.log("request url:", requestUrl.href);
const apiVersion = useRuntimeConfig().public.apiVersion;
console.log("api version:", apiVersion);
console.log("apiBase not set");
const { status, data: gorbTxt } = await useFetch(`${requestUrl.protocol}//${requestUrl.host}/.well-known/gorb.txt`, { responseType: "text" });
if (status.value == "success" && gorbTxt.value) {
console.log("got gorb.txt:", gorbTxt.value);
const parsed = parseWellKnown(gorbTxt.value as string);
if (parsed.ApiBaseUrl) {
apiBase.value = `${parsed.ApiBaseUrl}/${apiVersion}`;
console.log("set apiBase to:", parsed.ApiBaseUrl);
}
}
}
if (accessToken) { if (accessToken) {
return await navigateTo("/"); return await navigateTo("/");
} }

View file

@ -43,7 +43,6 @@ const registrationEnabled = ref<boolean>(true);
const apiBase = useCookie("api_base"); const apiBase = useCookie("api_base");
if (apiBase.value) { if (apiBase.value) {
console.log("apiBase:", apiBase.value);
const statsUrl = new URL("/stats", apiBase.value).href; const statsUrl = new URL("/stats", apiBase.value).href;
const { status, data } = await useFetch<StatsResponse>(statsUrl); const { status, data } = await useFetch<StatsResponse>(statsUrl);
if (status.value == "success" && data.value) { if (status.value == "success" && data.value) {
@ -63,9 +62,9 @@ async function formLogin(e: Event) {
console.log("logged in"); console.log("logged in");
if (query.redirect_to) { if (query.redirect_to) {
console.log("redirecting to:", query.redirect_to); console.log("redirecting to:", query.redirect_to);
return await navigateTo(query.redirect_to, { replace: true }); return await navigateTo(query.redirect_to);
} }
return await navigateTo("/", { replace: true }); return await navigateTo("/");
} catch (error) { } catch (error) {
console.error("Error logging in:", error); console.error("Error logging in:", error);
} }

View file

@ -47,17 +47,14 @@ definePageMeta({
layout: "auth" layout: "auth"
}) })
const registrationEnabled = useState("registrationEnabled", () => true); const instanceUrl = useCookie("instance_url").value;
const registrationEnabled = ref<boolean>(false);
console.log("wah"); if (instanceUrl) {
console.log("weoooo") const statsUrl = new URL("/stats", instanceUrl).href;
const apiBase = useCookie("api_base"); const { status, data, error } = await useFetch<StatsResponse>(statsUrl);
console.log("apiBase:", apiBase.value);
if (apiBase.value) {
const { status, data, error } = await useFetch<StatsResponse>(`${apiBase.value}/stats`);
if (status.value == "success" && data.value) { if (status.value == "success" && data.value) {
registrationEnabled.value = data.value.registration_enabled; registrationEnabled.value = data.value.registration_enabled;
console.log("set registration enabled value to:", data.value.registration_enabled);
} }
} }
@ -95,6 +92,12 @@ const query = useRoute().query as Record<string, string>;
const searchParams = new URLSearchParams(query); const searchParams = new URLSearchParams(query);
const loginUrl = `/login?${searchParams}` const loginUrl = `/login?${searchParams}`
onMounted(() => {
if (auth.accessToken.value) {
//return navigateTo(redirectTo ? redirectTo as string : useAppConfig().baseURL as string);
}
});
/* /*
watch(() => form.username, (newValue) => { watch(() => form.username, (newValue) => {
console.log("username change:", newValue); console.log("username change:", newValue);