// @flow import React from 'react'; import classnames from 'classnames'; import usePersistedState from 'effects/use-persisted-state'; import { FormField } from 'component/common/form'; import Button from 'component/button'; import { LbryFirst } from 'lbry-redux'; import LicenseType from './license-type'; import Card from 'component/common/card'; type Props = { user: ?User, language: ?string, name: ?string, licenseType: ?string, otherLicenseDescription: ?string, licenseUrl: ?string, disabled: boolean, updatePublishForm: ({}) => void, useLBRYUploader: boolean, needsYTAuth: boolean, fetchAccessToken: () => void, accessToken: string, }; function PublishAdditionalOptions(props: Props) { const { user, language, name, licenseType, otherLicenseDescription, licenseUrl, updatePublishForm, useLBRYUploader, needsYTAuth, fetchAccessToken, accessToken, } = props; const [hideSection, setHideSection] = usePersistedState('publish-advanced-options', true); const isLBRYFirstUser = user && user.lbry_first_approved; function toggleHideSection() { setHideSection(!hideSection); } function signup() { updatePublishForm({ ytSignupPending: true }); LbryFirst.ytSignup() .then(response => { console.log(response); updatePublishForm({ needsYTAuth: false, ytSignupPending: false }); }) .catch(error => { updatePublishForm({ ytSignupPending: false }); console.log(error); }); } function unlink() { LbryFirst.remove() .then(response => { console.log(response); updatePublishForm({ needsYTAuth: true }); }) .catch(error => { console.log(error); }); } React.useEffect(() => { if (!accessToken) { fetchAccessToken(); } }, [accessToken, fetchAccessToken]); React.useEffect(() => { if (useLBRYUploader) { LbryFirst.hasYTAuth(accessToken) .then(response => { console.log(response); updatePublishForm({ needsYTAuth: !response.HasAuth }); }) .catch(error => { console.log(error); }); } }, [accessToken, updatePublishForm, useLBRYUploader]); return ( {!hideSection && (
{!IS_WEB && isLBRYFirstUser && ( updatePublishForm({ useLBRYUploader: !useLBRYUploader })} label={ {__('Automagically upload to your youtube channel!')}{' '}
)} {!IS_WEB && useLBRYUploader && needsYTAuth && isLBRYFirstUser && (
)} updatePublishForm({ language: event.target.value })} > updatePublishForm({ licenseType: newLicenseType, licenseUrl: newLicenseUrl, }) } handleLicenseDescriptionChange={event => updatePublishForm({ otherLicenseDescription: event.target.value, }) } handleLicenseUrlChange={event => updatePublishForm({ licenseUrl: event.target.value })} /> )}
} /> ); } export default PublishAdditionalOptions;