tachybase_todo/packages/plugins/mobile-client/src/client/router/OpenInNewTab.tsx

34 lines
920 B
TypeScript

import React from 'react';
import { useTranslation } from '../locale';
import { useLocation, useNavigate } from 'react-router-dom';
import { css } from '@nocobase/client';
import { Button } from 'antd';
import { LinkOutlined } from '@ant-design/icons';
export const OpenInNewTab = () => {
const location = useLocation();
const { t } = useTranslation();
const onOpenInNewTab = () => {
let baseUrl = window.origin;
if (window.location.pathname.startsWith('/apps')) {
baseUrl = window.origin + window.location.pathname.split('/').slice(0, 3).join('/');
}
window.open(`${baseUrl}${location.pathname}${location.search}`);
};
return (
<div
className={css`
position: absolute;
top: -40px;
right: 0;
`}
>
<Button type="dashed" onClick={onOpenInNewTab} icon={<LinkOutlined />}>
{t('Open in new tab')}
</Button>
</div>
);
};