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
6 changes: 3 additions & 3 deletions netlify-arvio-tv-site/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -2244,7 +2244,7 @@
<svg id="theme-icon-dark" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="display: none;"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path></svg>
</button>
<a class="nav-web" href="/web/">Dashboard</a>
<a class="nav-web" href="https://web.arvio.tv/login">Web app</a>
<a class="nav-web" href="https://web.arvio.tv">Web app</a>
<a class="nav-cta" href="https://play.google.com/store/apps/details?id=com.arvio.tv" target="_blank" rel="noopener">Get ARVIO
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M13 5l7 7-7 7"></path></svg>
</a>
Expand Down Expand Up @@ -2731,7 +2731,7 @@ <h2 class="section-title">ARVIO Web: every <span class="accent">other screen.</s
<div class="guide-warning reveal" data-delay="2" style="margin-top:22px">Browsers only decode a limited set of formats — true for every web streamer. Most sources play directly (use the "Browser playable" filter); heavy 4K HEVC, Dolby Vision and REMUX releases, lossless audio and some Live TV providers don't. That's what the one‑tap "Open in VLC" button is for: it hands the stream to VLC on iPhone, iPad, Android, macOS and Windows (one‑time one‑click setup), which plays everything. The app has none of these limits — its native player decodes it all.</div>

<div class="reveal" data-delay="3" style="display:flex;gap:10px;flex-wrap:wrap;margin-top:24px">
<a class="btn btn-ghost" href="https://web.arvio.tv/login">Open ARVIO Web</a>
<a class="btn btn-ghost" href="https://web.arvio.tv">Open ARVIO Web</a>
<a class="btn btn-ghost" href="https://ko-fi.com/arvio/tiers" target="_blank" rel="noopener">Ko‑fi membership</a>
<a class="btn btn-ghost" href="https://github.com/ProdigyV21/ARVIO">Source on GitHub</a>
</div>
Expand Down Expand Up @@ -2806,7 +2806,7 @@ <h3>From fresh install to a synced TV home.</h3>
<div class="guide-actions">
<a class="guide-link" href="https://stremio-addons.net/" target="_blank" rel="noopener">Browse compatible source directory</a>
<a class="guide-link secondary" href="/web/">Manage settings and addons</a>
<a class="guide-link secondary" href="https://web.arvio.tv/login">Open web app</a>
<a class="guide-link secondary" href="https://web.arvio.tv">Open web app</a>
</div>
</div>

Expand Down
2 changes: 1 addition & 1 deletion netlify-arvio-tv-site/netlify.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

[[redirects]]
from = "/app"
to = "https://web.arvio.tv/login"
to = "https://web.arvio.tv"
status = 302
force = true

Expand Down
9 changes: 2 additions & 7 deletions web/app/login/page.tsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,5 @@
import { AppShell } from "@/components/shell/AppShell";
import { AppProvider } from "@/lib/store";
import { redirect } from "next/navigation";

export default function LoginPage() {
return (
<AppProvider initialView="login" cloudLoginRequired>
<AppShell />
</AppProvider>
);
redirect("/");
}
2 changes: 1 addition & 1 deletion web/components/login/LoginScreen.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ export function LoginScreen() {

const redirectToAuthPortal = () => {
if (typeof window === "undefined") return;
const redirectUri = window.location.origin + "/login";
const redirectUri = window.location.origin + "/";
const portalUrl = getAuthPortalUrl();
window.location.href = `${portalUrl}?redirect_uri=${encodeURIComponent(redirectUri)}`;
};
Expand Down
2 changes: 1 addition & 1 deletion web/components/settings/SettingsScreen.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -1010,7 +1010,7 @@ function AccountsSection() {
const cloudConfigured = hasNetlifyBackendConfig() || hasSupabaseConfig();

const redirectToAuthPortal = () => {
const redirectUri = window.location.origin + "/login";
const redirectUri = window.location.origin + "/";
window.location.href = `${getAuthPortalUrl()}?redirect_uri=${encodeURIComponent(redirectUri)}`;
};

Expand Down
9 changes: 8 additions & 1 deletion web/lib/store.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
import { getStreams, getStreamsProgressive, installAddon as installAddonManifest, loadLocalAddons, normalizeAddons, saveLocalAddons } from "./addons";
import { AuthClient, SESSION_KEY, decodeJwtPayload } from "./auth";
import { getAuthPortalUrl } from "./config";
import { defaultCatalogs, mergeCatalogs } from "./catalogs";
import { getContinueWatching, pullCloudPayload, pullCloudProfiles, pullCloudTraktToken, pullCloudWatchlist, saveCloudAddons, saveCloudProfiles, saveCloudSettings, saveCloudTraktToken } from "./cloud";
import { cachedDebridDirectUrl, parseDebridStream, resolveDebridDirectUrl, resolveTranscodeStream } from "./debrid";
Expand Down Expand Up @@ -1540,7 +1541,13 @@ export function AppProvider({
setView("profiles");
}, []);

const goToLogin = useCallback(() => setView("login"), []);
const goToLogin = useCallback(() => {
if (typeof window !== "undefined") {
const redirectUri = window.location.origin + "/";
const portalUrl = getAuthPortalUrl();
window.location.href = `${portalUrl}?redirect_uri=${encodeURIComponent(redirectUri)}`;
}
}, []);
const backToProfiles = useCallback(() => setView("profiles"), []);

const value = useMemo<AppStore>(() => ({
Expand Down
Loading