Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

AbstractPollsPane.js 1.1KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. // @flow
  2. import React, { useState } from 'react';
  3. import type { AbstractComponent } from 'react';
  4. import { useTranslation } from 'react-i18next';
  5. /*
  6. * Props that will be passed by the AbstractPollsPane to its
  7. * concrete implementations (web/native).
  8. **/
  9. export type AbstractProps = {
  10. createMode: boolean,
  11. onCreate: void => void,
  12. setCreateMode: boolean => void,
  13. t: Function,
  14. };
  15. /**
  16. * Higher Order Component taking in a concrete PollsPane component and
  17. * augmenting it with state/behavior common to both web and native implementations.
  18. *
  19. * @param {React.AbstractComponent} Component - The concrete component.
  20. * @returns {React.AbstractComponent}
  21. */
  22. const AbstractPollsPane = (Component: AbstractComponent<AbstractProps>) => () => {
  23. const [ createMode, setCreateMode ] = useState(false);
  24. const onCreate = () => {
  25. setCreateMode(true);
  26. };
  27. const { t } = useTranslation();
  28. return (<Component
  29. createMode = { createMode }
  30. /* eslint-disable react/jsx-no-bind */
  31. onCreate = { onCreate }
  32. setCreateMode = { setCreateMode }
  33. t = { t } />);
  34. };
  35. export default AbstractPollsPane;