Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
import React from 'react';
import netlifyIdentity from 'netlify-identity-widget';
netlifyIdentity.init({
// TODO: figure out why this is not working
namePlaceholder: 'Username',
});
export const CurrentUserContext = React.createContext({});
class CurrentUserContextProvider extends React.Component {
state = {
user: netlifyIdentity.currentUser(),
};
authenticate = ({ showSignup = false, onSuccess }) => {
netlifyIdentity.open(showSignup && 'signup');
netlifyIdentity.on('login', user => {
this.setState({ user });
onSuccess && onSuccess(user);
});
};
logout = callback => {
netlifyIdentity.logout();
netlifyIdentity.on('logout', () => {
this.setState({ user: null });
});
};
componentDidMount() {
const { source, client, node = {} } = this.props;
const user = netlifyIdentity.currentUser();
let markdown = source;
let rawObject = markdownToDraft(markdown);
// See if we have a locally saved node
// Saving triggers a server rebuild so we store data locally
// to account for the delay
client.query({ query: GET_NODES }).then(({ data: { nodes } }) => {
const localNode = _.find(nodes, { id: node.id });
if (localNode) {
markdown = localNode.content;
rawObject = markdownToDraft(markdown);
}
const editorState = createEditorState(rawObject);
// If user logged in then show editor
if (user) {
this.setState({
user,
const authLink = setContext((_, { headers }) => {
// get the authentication token from local storage if it exists
const user = netlifyIdentity.currentUser();
const token = process.env.GATSBY_GRAPHQLCMS_TOKEN;
// return the headers to the context so httpLink can read them
return {
headers: {
...headers,
authorization: user ? `Bearer ${token}` : '',
},
};
});
const defaults = {
mounted () {
netlifyIdentity.on('init', user => this.login(user))
netlifyIdentity.on('login', user => this.login(user))
netlifyIdentity.on('logout', () => console.log('Logged out'))
netlifyIdentity.on('error', err => console.error('Error', err))
netlifyIdentity.on('open', () => console.log('Widget opened'))
netlifyIdentity.on('close', () => console.log('Widget closed'))
netlifyIdentity.init()
const userx = netlifyIdentity.currentUser()
console.log('hi', userx)
},
getUser() {
const netlifyIdentity = require("netlify-identity-widget")
if (process.env.PREFECT_DOCS_DEV_MODE === "1"){
return 1
} else {
return netlifyIdentity.currentUser()
}
},
logOut () {
export function loginUser() {
if (netlifyIdentity && netlifyIdentity.currentUser()) {
const {
app_metadata,
created_at,
confirmed_at,
email,
id,
user_metadata,
} = netlifyIdentity.currentUser();
localStorage.setItem(
'currentUser',
JSON.stringify({
...app_metadata,
created_at,
confirmed_at,
email,
id,
...user_metadata,
})
);
}
}
getProducts(){
return netlifyIdentity.currentUser() != null
? this.props.data.allMarkdownRemark.edges
: this.props.data.allMarkdownRemark.edges
.filter(x => !x.node.frontmatter.private)
}
export const isLoggedIn = () => {
return !!netlifyIdentity.currentUser();
}