accessibility.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import { ReactiveCache } from '/imports/reactiveCache';
  2. import { TAPi18n } from '/imports/i18n';
  3. // Shared helpers for both accessibility templates
  4. const accessibilityHelpers = {
  5. accessibilityTitle() {
  6. const setting = AccessibilitySettings.findOne({});
  7. return setting && setting.title ? setting.title : TAPi18n.__('accessibility-title');
  8. },
  9. accessibilityContent() {
  10. const setting = AccessibilitySettings.findOne({});
  11. return setting && setting.body ? setting.body : TAPi18n.__('accessibility-content');
  12. },
  13. isAccessibilityEnabled() {
  14. const setting = AccessibilitySettings.findOne({});
  15. return setting && setting.enabled;
  16. }
  17. };
  18. // Main accessibility page component
  19. BlazeComponent.extendComponent({
  20. onCreated() {
  21. this.error = new ReactiveVar('');
  22. this.loading = new ReactiveVar(false);
  23. Meteor.subscribe('setting');
  24. Meteor.subscribe('accessibilitySettings');
  25. },
  26. ...accessibilityHelpers
  27. }).register('accessibility');
  28. // Header bar component
  29. BlazeComponent.extendComponent({
  30. onCreated() {
  31. Meteor.subscribe('accessibilitySettings');
  32. },
  33. ...accessibilityHelpers
  34. }).register('accessibilityHeaderBar');