Skip to content

Instantly share code, notes, and snippets.

@alexdiliberto
Created June 27, 2018 04:28
Show Gist options
  • Save alexdiliberto/d23972242b3034764caa116fae2fc1c4 to your computer and use it in GitHub Desktop.
Save alexdiliberto/d23972242b3034764caa116fae2fc1c4 to your computer and use it in GitHub Desktop.
// app/routes/application.js
export default Route.extend({
currentUser: service(),
beforeModel: renderingContext({
server() {},
client() {
return this.get('currentSession.fetch').perform().catch(console.error);
}
})
});
// app/utils/rendering-context.js
export default function renderingContext(context) {
return (typeof Fastboot === "undefined") ? context.client : client.server;
}
// app/services/session.js
export default Service.extend({
setupCSRF: renderingContext({
server() {},
client(session) {
let prefilter = (options, originalOptions, jqXHR) => {
let token = session.get('csrfToken');
if (token && !options.crossDomain) {
jqXHR.setRequestHeader('X-CSRF-Token', token);
}
};
$.ajaxPrefilter(prefilter);
}
})
});
// app/components/site-header.js
export default Component.extend({
currentUser: service(),
showAvatar: renderingContext({
server: false,
client: readOnly('currentUser.hasAvatar')
})
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment