import React, { PropTypes, Component } from 'react'; import Router from '../router.js'; import { Dropdown } from 'react-bootstrap'; import { Button, Input } from 'react-bootstrap'; import { Accounts } from 'meteor/std:accounts-ui'; const AccountsMenu = () => { ({UserAvatar, UserName} = Telescope.components); return ( Log In ) }; module.exports = AccountsMenu; export default AccountsMenu; // customize Accounts.ui Accounts.ui.config({ passwordSignupFields: 'USERNAME_AND_EMAIL', }); class AccountsButton extends Accounts.ui.Button { render() { const { label, type, disabled = false, onClick, className } = this.props; return type == 'link' ? ( ) : ( ); } } class AccountsField extends Accounts.ui.Field { render() { const { id, hint, label, type = 'text', onChange, className = "field" } = this.props; return (
); } } /** * accounts-facebook & accounts-twitter are used by nova:lib, so the oauthServices recognize these two keys. * However, they are not enabled by default (no credentials) * => Don't show the social buttons if the service exists but is not enabled. */ class AccountsSocialButtons extends Accounts.ui.SocialButtons { render () { let { oauthServices = {}, className = "social_buttons" } = this.props; return(
{Object.keys(oauthServices) .filter(service => oauthServices[service].disabled) // filter services registered but not enabled .map((id, i) => )}
); } } /** * Same stuff as above -> filter services registered but not enabled */ class AccountsPasswordOrService extends Accounts.ui.PasswordOrService { render () { let { oauthServices = {}, className, style = {} } = this.props; let { hasPasswordService } = this.state; let labels = Object.keys(oauthServices) .filter(service => oauthServices[service].disabled) // filter services registered but not enabled .map(service => oauthServices[service].label); if (labels.length > 2) { labels = []; } if (hasPasswordService && labels.length > 0) { return (
{ `${T9n.get('or use')} ${ labels.join(' / ') }` }
); } return null; } } Accounts.ui.Button = AccountsButton; Accounts.ui.Field = AccountsField; Accounts.ui.SocialButtons = AccountsSocialButtons; Accounts.ui.PasswordOrService = AccountsPasswordOrService;