Make sure /compose/ can really run standalone
Passing `masto` to new window is a nice hack, but only works when passed from window.opener When standalone, need to login again
This commit is contained in:
parent
a115639a99
commit
2485bb945d
1 changed files with 23 additions and 0 deletions
|
@ -3,15 +3,38 @@ import './index.css';
|
||||||
import './app.css';
|
import './app.css';
|
||||||
|
|
||||||
import '@github/time-elements';
|
import '@github/time-elements';
|
||||||
|
import { login } from 'masto';
|
||||||
import { render } from 'preact';
|
import { render } from 'preact';
|
||||||
import { useEffect, useState } from 'preact/hooks';
|
import { useEffect, useState } from 'preact/hooks';
|
||||||
|
|
||||||
import Compose from './components/compose';
|
import Compose from './components/compose';
|
||||||
|
import store from './utils/store';
|
||||||
|
|
||||||
if (window.opener) {
|
if (window.opener) {
|
||||||
console = window.opener.console;
|
console = window.opener.console;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
(async () => {
|
||||||
|
if (window.masto) return;
|
||||||
|
console.warn('window.masto not found. Trying to log in...');
|
||||||
|
try {
|
||||||
|
const accounts = store.local.getJSON('accounts') || [];
|
||||||
|
const currentAccount = store.session.get('currentAccount');
|
||||||
|
const account =
|
||||||
|
accounts.find((a) => a.info.id === currentAccount) || accounts[0];
|
||||||
|
const instanceURL = account.instanceURL;
|
||||||
|
const accessToken = account.accessToken;
|
||||||
|
window.masto = await login({
|
||||||
|
url: `https://${instanceURL}`,
|
||||||
|
accessToken,
|
||||||
|
});
|
||||||
|
console.info('Logged in successfully.');
|
||||||
|
} catch (e) {
|
||||||
|
console.error(e);
|
||||||
|
alert('Failed to log in. Please try again.');
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
|
||||||
function App() {
|
function App() {
|
||||||
const [uiState, setUIState] = useState('default');
|
const [uiState, setUIState] = useState('default');
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue