mirror of
https://github.com/supermemoryai/supermemory.git
synced 2026-10-01 02:01:40 +00:00
chore(web): reduce the app to a redirect shell, drop the browser extension app.supermemory.ai now forwards everything to the console: plugin, OAuth and invite paths get an immediate 308 with the query intact, everything else shows a short notice first. Removes the browser extension workspace. chore(web): give the moved notice a proper design Hostnames become the headline, one primary action, a draining line for the countdown, DM Sans and the dot-grid backdrop from the brand. chore(docs): point docs and README at the console, drop stale sections Docs and both READMEs now link to console.supermemory.ai for API keys. Removed the company-brain docs tab with a redirect, and trimmed the README app section. chore(web): give the redirect five seconds
60 lines
1.5 KiB
TypeScript
60 lines
1.5 KiB
TypeScript
"use client"
|
|
|
|
import { useEffect, useState } from "react"
|
|
import { consoleOrigin } from "../console-origin"
|
|
|
|
const SECONDS = 5
|
|
|
|
export default function MovedPage() {
|
|
const [target, setTarget] = useState("https://console.supermemory.ai")
|
|
const [oldHost, setOldHost] = useState("app.supermemory.ai")
|
|
|
|
useEffect(() => {
|
|
setTarget(consoleOrigin(window.location.hostname, window.location.protocol))
|
|
setOldHost(window.location.hostname)
|
|
}, [])
|
|
|
|
useEffect(() => {
|
|
const id = setTimeout(() => window.location.replace(target), SECONDS * 1000)
|
|
return () => clearTimeout(id)
|
|
}, [target])
|
|
|
|
const newHost = target.replace(/^https?:\/\//, "")
|
|
|
|
return (
|
|
<div className="page">
|
|
<header className="brand">
|
|
<img alt="Supermemory" src="/logo-fullmark.svg" />
|
|
</header>
|
|
|
|
<main className="notice">
|
|
<div className="notice-inner">
|
|
<h1 className="headline">We moved.</h1>
|
|
|
|
<ul className="hosts">
|
|
<li className="host-old">{oldHost}</li>
|
|
<li className="host-new">{newHost}</li>
|
|
</ul>
|
|
|
|
<p className="body">
|
|
Your memories, API keys and plugin connections are already there.
|
|
Nothing to set up again.
|
|
</p>
|
|
|
|
<div className="action">
|
|
<a className="button" href={target}>
|
|
Open the console
|
|
</a>
|
|
<div
|
|
className="progress"
|
|
style={{ "--seconds": `${SECONDS}s` } as React.CSSProperties}
|
|
/>
|
|
<p aria-live="polite" className="status">
|
|
Redirecting automatically
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</main>
|
|
</div>
|
|
)
|
|
}
|