summaryrefslogtreecommitdiff
path: root/packages/frontend/src/utility/popout.ts
blob: 5b141222e84f2e5f5f272964bd73843b82464ad0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/*
 * SPDX-FileCopyrightText: syuilo and misskey-project
 * SPDX-License-Identifier: AGPL-3.0-only
 */

import { appendQuery } from '@@/js/url.js';
import * as config from '@@/js/config.js';

export function popout(path: string, w?: HTMLElement) {
	let url = path.startsWith('http://') || path.startsWith('https://') ? path : config.url + path;
	url = appendQuery(url, 'zen');
	if (w) {
		const position = w.getBoundingClientRect();
		const width = parseInt(getComputedStyle(w, '').width, 10);
		const height = parseInt(getComputedStyle(w, '').height, 10);
		const x = window.screenX + position.left;
		const y = window.screenY + position.top;
		window.open(url, url,
			`width=${width}, height=${height}, top=${y}, left=${x}`);
	} else {
		const width = 400;
		const height = 500;
		const x = window.top.outerHeight / 2 + window.top.screenY - (height / 2);
		const y = window.top.outerWidth / 2 + window.top.screenX - (width / 2);
		window.open(url, url,
			`width=${width}, height=${height}, top=${x}, left=${y}`);
	}
}