60 lines
1.5 KiB
JavaScript
60 lines
1.5 KiB
JavaScript
import React from 'react';
|
|
import Motion from 'flavours/glitch/util/optional_motion';
|
|
import spring from 'react-motion/lib/spring';
|
|
import { defineMessages, FormattedMessage } from 'react-intl';
|
|
import { profileLink } from 'flavours/glitch/util/backend_links';
|
|
|
|
// This is the spring used with our motion.
|
|
const motionSpring = spring(1, { damping: 35, stiffness: 400 });
|
|
|
|
// Messages.
|
|
const messages = defineMessages({
|
|
disclaimer: {
|
|
defaultMessage: 'Your account is not {locked}. Anyone can follow you to view your follower-only posts.',
|
|
id: 'compose_form.lock_disclaimer',
|
|
},
|
|
locked: {
|
|
defaultMessage: 'locked',
|
|
id: 'compose_form.lock_disclaimer.lock',
|
|
},
|
|
});
|
|
|
|
// The component.
|
|
export default function ComposerWarning () {
|
|
let lockedLink = <FormattedMessage {...messages.locked} />;
|
|
if (profileLink !== undefined) {
|
|
lockedLink = <a href={profileLink}>{lockedLink}</a>;
|
|
}
|
|
return (
|
|
<Motion
|
|
defaultStyle={{
|
|
opacity: 0,
|
|
scaleX: 0.85,
|
|
scaleY: 0.75,
|
|
}}
|
|
style={{
|
|
opacity: motionSpring,
|
|
scaleX: motionSpring,
|
|
scaleY: motionSpring,
|
|
}}
|
|
>
|
|
{({ opacity, scaleX, scaleY }) => (
|
|
<div
|
|
className='composer--warning'
|
|
style={{
|
|
opacity: opacity,
|
|
transform: `scale(${scaleX}, ${scaleY})`,
|
|
}}
|
|
>
|
|
<FormattedMessage
|
|
{...messages.disclaimer}
|
|
values={{ locked: lockedLink }}
|
|
/>
|
|
</div>
|
|
)}
|
|
</Motion>
|
|
);
|
|
}
|
|
|
|
ComposerWarning.propTypes = {};
|