// Copyright 2019-2021 @polkadot/extension-ui authors & contributors // SPDX-License-Identifier: Apache-2.0 import type { ThemeProps } from '../../types'; import React, { useCallback, useEffect, useState } from 'react'; import styled from 'styled-components'; import { AuthUrlInfo, AuthUrls } from '@polkadot/extension-base/background/handlers/State'; import { InputFilter } from '@polkadot/extension-ui/components'; import useTranslation from '../../hooks/useTranslation'; import { getAuthList, toggleAuthorization } from '../../messaging'; import { Header } from '../../partials'; import WebsiteEntry from './WebsiteEntry'; interface Props extends ThemeProps { className?: string; } function AuthManagement ({ className }: Props): React.ReactElement { const { t } = useTranslation(); const [authList, setAuthList] = useState(null); const [filter, setFilter] = useState(''); useEffect(() => { getAuthList() .then(({ list }) => setAuthList(list)) .catch((e) => console.error(e)); }, []); const _onChangeFilter = useCallback((filter: string) => { setFilter(filter); }, []); const toggleAuth = useCallback((url: string) => { toggleAuthorization(url) .then(({ list }) => setAuthList(list)) .catch(console.error); }, []); return ( <>
('Manage Website Access')} /> <> ('example.com')} value={filter} />
{ !authList || !Object.entries(authList)?.length ?
{t('No website request yet!')}
: <>
{Object.entries(authList) .filter(([url]: [string, AuthUrlInfo]) => url.includes(filter)) .map( ([url, info]: [string, AuthUrlInfo]) => )}
}
); } export default styled(AuthManagement)` height: calc(100vh - 2px); overflow-y: auto; .empty-list { text-align: center; } `;