stylesheet.ts 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. import {
  2. type TextStyle,
  3. type ViewStyle,
  4. StyleSheet
  5. } from "react-native";
  6. import {
  7. type DialogDynamicStyleType
  8. } from "./type";
  9. import type {
  10. Mutable
  11. } from "../../types";
  12. const stylesheet = StyleSheet.create({
  13. container: {
  14. flexDirection: "column",
  15. position: "relative",
  16. overflow: "hidden",
  17. maxHeight: "80%",
  18. maxWidth: "85%",
  19. minWidth: "23%",
  20. zIndex: 99998
  21. },
  22. content: {
  23. flexWrap: "wrap"
  24. },
  25. headerContainer: {
  26. paddingBottom: 0
  27. },
  28. bottomContainer: {
  29. width: "100%"
  30. },
  31. bottomContentContainer: {
  32. justifyContent: "flex-end",
  33. flexDirection: "row"
  34. },
  35. headerTitle: {
  36. },
  37. contentText: {
  38. },
  39. primaryButton: {
  40. },
  41. closeIcon: {
  42. position: "absolute",
  43. right: 0,
  44. top: 0
  45. }
  46. });
  47. export const useStyles = ({
  48. contentJustify,
  49. isVisible,
  50. radiuses,
  51. variant,
  52. colors,
  53. spaces
  54. }: DialogDynamicStyleType) => {
  55. const styles = {
  56. container: {
  57. backgroundColor: colors.content.container.default,
  58. borderRadius: radiuses.md
  59. } as Mutable<ViewStyle>,
  60. content: {
  61. paddingBottom: spaces.spacingMd,
  62. paddingRight: spaces.spacingMd,
  63. paddingLeft: spaces.spacingMd,
  64. paddingTop: spaces.spacingMd
  65. } as Mutable<ViewStyle>,
  66. headerContainer: {
  67. paddingRight: spaces.spacingMd,
  68. paddingLeft: spaces.spacingMd,
  69. paddingTop: spaces.spacingLg
  70. } as Mutable<ViewStyle>,
  71. bottomContainer: {
  72. paddingTop: spaces.spacingSm
  73. } as Mutable<ViewStyle>,
  74. bottomContentContainer: {
  75. paddingBottom: spaces.spacingMd,
  76. paddingRight: spaces.spacingMd,
  77. paddingLeft: spaces.spacingMd
  78. } as Mutable<ViewStyle>,
  79. headerTitle: {
  80. } as Mutable<TextStyle>,
  81. contentText: {
  82. } as Mutable<TextStyle>,
  83. closeIcon: {
  84. padding: spaces.spacingMd
  85. } as Mutable<ViewStyle>,
  86. primaryButton: {
  87. } as Mutable<ViewStyle>
  88. };
  89. if(variant === "yes-no") {
  90. styles.primaryButton.marginLeft = spaces.spacingMd;
  91. }
  92. if(isVisible === false) {
  93. styles.container.display = "none";
  94. }
  95. if(contentJustify === "centered") {
  96. styles.content.justifyContent = "center";
  97. styles.content.alignItems = "center";
  98. styles.content.display = "flex";
  99. styles.contentText.textAlign = "center";
  100. styles.headerContainer.justifyContent = "center";
  101. styles.headerContainer.alignItems = "center";
  102. styles.headerContainer.display = "flex";
  103. styles.headerTitle.textAlign = "center";
  104. }
  105. if(variant === "info") {
  106. styles.content.paddingBottom = spaces.spacingLg;
  107. }
  108. return styles;
  109. };
  110. export default stylesheet;