state.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. const config = require('./config');
  2. const layout = require('./layout');
  3. const assets = require('../common/assets');
  4. const getTranslator = require('./locale');
  5. const { getFxaConfig } = require('./fxa');
  6. module.exports = async function(req) {
  7. const locale = req.language || 'en-US';
  8. let authConfig = null;
  9. let robots = 'none';
  10. if (req.route && req.route.path === '/') {
  11. robots = 'all';
  12. }
  13. if (config.fxa_client_id) {
  14. try {
  15. authConfig = await getFxaConfig();
  16. authConfig.client_id = config.fxa_client_id;
  17. } catch (e) {
  18. // continue without accounts
  19. }
  20. }
  21. const prefs = {};
  22. if (config.survey_url) {
  23. prefs.surveyUrl = config.survey_url;
  24. }
  25. const baseUrl = config.deriveBaseUrl(req);
  26. return {
  27. archive: {
  28. numFiles: 0
  29. },
  30. locale,
  31. capabilities: { account: false },
  32. translate: getTranslator(locale),
  33. title: 'Send',
  34. description:
  35. 'Encrypt and send files with a link that automatically expires to ensure your important documents don’t stay online forever.',
  36. baseUrl,
  37. ui: {},
  38. storage: {
  39. files: []
  40. },
  41. fileInfo: {},
  42. cspNonce: req.cspNonce,
  43. user: { avatar: assets.get('user.svg'), loggedIn: false },
  44. robots,
  45. authConfig,
  46. prefs,
  47. layout
  48. };
  49. };