51 lines
1.6 KiB
JavaScript
51 lines
1.6 KiB
JavaScript
import PropTypes from 'prop-types'
|
|
import { useContext } from 'react'
|
|
import { Result, Typography, Flex } from 'antd'
|
|
import CopyButton from './CopyButton'
|
|
import RssIcon from '../../Icons/RssIcon'
|
|
import config from '../../../config'
|
|
import { AuthContext } from '../context/AuthContext'
|
|
|
|
const { Text } = Typography
|
|
|
|
const RSSFeedURL = ({ objectType }) => {
|
|
const { userProfile } = useContext(AuthContext)
|
|
const baseUrl = config.backendUrl?.replace(/\/$/, '') || ''
|
|
const feedUsername = encodeURIComponent(userProfile?.username || 'USERNAME')
|
|
const feedPassword = 'APP_PASSWORD'
|
|
const rssUrl = `${baseUrl}/rss/${objectType}?u=${feedUsername}&p=${feedPassword}`
|
|
|
|
return (
|
|
<Flex vertical align='center'>
|
|
<Result
|
|
title='RSS Feed Connection'
|
|
subTitle={
|
|
<Text>
|
|
Use this URL to subscribe from RSS readers or automation tools. An
|
|
app password is required and can be configured in your user
|
|
settings. Use your app password, not your account password.
|
|
</Text>
|
|
}
|
|
icon={<RssIcon />}
|
|
>
|
|
<Flex justify='center' style={{ minWidth: '395px' }}>
|
|
<Flex justify='center'>
|
|
<Flex gap='small' align='center' justify='center'>
|
|
<Text code style={{ fontSize: '14px', wordBreak: 'break-all' }}>
|
|
{rssUrl}
|
|
</Text>
|
|
<CopyButton size='default' text={rssUrl} />
|
|
</Flex>
|
|
</Flex>
|
|
</Flex>
|
|
</Result>
|
|
</Flex>
|
|
)
|
|
}
|
|
|
|
RSSFeedURL.propTypes = {
|
|
objectType: PropTypes.string.isRequired
|
|
}
|
|
|
|
export default RSSFeedURL
|