index.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. 'use strict';
  2. const ReactNative = require('react-native');
  3. const {
  4. NativeModules,
  5. } = ReactNative;
  6. const RCTToast = NativeModules.Toast;
  7. const Toast = {};
  8. const optionsBuilder = function () {
  9. // defaults
  10. let message = null;
  11. let duration = 'short';
  12. let position = 'center';
  13. let addPixelsY = 0;
  14. return {
  15. withMessage: function (m) {
  16. message = m;
  17. return this;
  18. },
  19. withDuration: function (d) {
  20. duration = d;
  21. return this;
  22. },
  23. withPosition: function (p) {
  24. position = p;
  25. return this;
  26. },
  27. withAddPixelsY: function (y) {
  28. addPixelsY = y;
  29. return this;
  30. },
  31. build: function () {
  32. return {
  33. message: message,
  34. duration: duration,
  35. position: position,
  36. addPixelsY: addPixelsY,
  37. };
  38. },
  39. };
  40. };
  41. const showWithOptions = function (options) {
  42. RCTToast.show(options);
  43. };
  44. const showToast = function (message, duration, position) {
  45. showWithOptions(
  46. optionsBuilder()
  47. .withMessage(message || '未知数据')
  48. .withDuration(duration)
  49. .withPosition(position)
  50. .build()
  51. );
  52. };
  53. Toast.showShortTop = function (message) {
  54. showToast(message, 'short', 'top');
  55. };
  56. Toast.showShortCenter = function (message) {
  57. showToast(message, 'short', 'center');
  58. };
  59. Toast.showShortBottom = function (message) {
  60. showToast(message, 'short', 'bottom');
  61. };
  62. Toast.showLongTop = function (message) {
  63. showToast(message, 'long', 'top');
  64. };
  65. Toast.showLongCenter = function (message) {
  66. showToast(message, 'long', 'center');
  67. };
  68. Toast.showLongBottom = function (message) {
  69. showToast(message, 'long', 'bottom');
  70. };
  71. Toast.show = function (message) {
  72. showToast(message, 'short', 'bottom');
  73. };
  74. Toast.hide = function () {
  75. RCTToast.hide();
  76. };
  77. module.exports = Toast;