您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

ItemDetailsHeaderCard.styled.js 5.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
  1. import { Box, Typography } from "@mui/material";
  2. import styled, { css } from "styled-components";
  3. import selectedTheme from "../../../themes";
  4. import { IconButton } from "../../Buttons/IconButton/IconButton";
  5. import { PrimaryButton } from "../../Buttons/PrimaryButton/PrimaryButton";
  6. import { ReactComponent as User } from "../../../assets/images/svg/user.svg";
  7. export const ItemDetailsHeaderContainer = styled(Box)`
  8. display: flex;
  9. flex-direction: column;
  10. width: ${(props) => (!props.halfwidth ? "100%" : "49%")};
  11. box-sizing: border-box;
  12. margin: 10px 0;
  13. background-color: ${(props) =>
  14. props.isMyProfile ? selectedTheme.colors.primaryPurple : "white"};
  15. border-radius: 4px;
  16. border: 1px solid
  17. ${(props) =>
  18. props.isMyProfile
  19. ? selectedTheme.colors.primaryPurple
  20. : selectedTheme.colors.borderNormal};
  21. max-width: 2000px;
  22. position: relative;
  23. @media screen and (max-width: 600px) {
  24. width: calc(100vw - 36px);
  25. }
  26. `;
  27. export const HeaderTop = styled(Box)`
  28. display: flex;
  29. flex-direction: row;
  30. padding: 18px;
  31. gap: 18px;
  32. `;
  33. export const OfferImage = styled.img`
  34. border-radius: 50%;
  35. width: 144px;
  36. height: 144px;
  37. @media (max-width: 600px) {
  38. width: 90px;
  39. height: 90px;
  40. }
  41. `;
  42. export const OfferInfo = styled(Box)`
  43. display: flex;
  44. flex: 2;
  45. flex-direction: column;
  46. justify-content: space-between;
  47. margin-left: 18px;
  48. `;
  49. export const OfferTitle = styled(Typography)`
  50. margin-bottom: 12px;
  51. font-family: ${selectedTheme.fonts.textFont};
  52. color: ${(props) =>
  53. props.isMyProfile
  54. ? selectedTheme.colors.primaryYellow
  55. : selectedTheme.colors.primaryPurple};
  56. font-weight: 700;
  57. font-size: 24px;
  58. cursor: pointer;
  59. @media (max-width: 600px) {
  60. font-size: 18px;
  61. }
  62. `;
  63. export const OfferAuthor = styled(Box)`
  64. display: flex;
  65. flex: 1;
  66. flex-direction: column;
  67. `;
  68. export const OfferAuthorName = styled(Typography)`
  69. font-family: ${selectedTheme.fonts.textFont};
  70. line-height: 22px;
  71. font-size: 16px;
  72. color: ${selectedTheme.colors.primaryDarkText};
  73. `;
  74. export const OfferLocation = styled(Box)`
  75. font-family: ${selectedTheme.fonts.textFont};
  76. color: ${selectedTheme.colors.primaryText};
  77. line-height: 16px;
  78. font-size: 12px;
  79. `;
  80. export const OfferPIB = styled(Box)`
  81. font-family: ${selectedTheme.fonts.textFont};
  82. color: ${(props) =>
  83. props.isMyProfile
  84. ? selectedTheme.colors.primaryDarkTextThird
  85. : selectedTheme.colors.primaryText};
  86. line-height: 16px;
  87. font-size: 12px;
  88. `;
  89. export const OfferDetails = styled(Box)`
  90. display: flex;
  91. flex-direction: column;
  92. flex-wrap: ${(props) => (!props.halfwidth ? "no-wrap" : "wrap")};
  93. justify-content: start;
  94. `;
  95. export const OfferCategory = styled(Box)`
  96. font-family: ${selectedTheme.fonts.textFont};
  97. color: ${selectedTheme.colors.primaryText};
  98. line-height: 16px;
  99. font-size: 12px;
  100. width: 33%;
  101. `;
  102. export const OfferPackage = styled(Box)`
  103. font-family: ${selectedTheme.fonts.textFont};
  104. color: ${selectedTheme.colors.primaryText};
  105. line-height: 16px;
  106. font-size: 12px;
  107. width: 34%;
  108. `;
  109. export const OfferViews = styled(Box)`
  110. font-family: ${selectedTheme.fonts.textFont};
  111. color: ${selectedTheme.colors.primaryText};
  112. line-height: 16px;
  113. font-size: 12px;
  114. width: 34%;
  115. `;
  116. export const OfferDescriptionTitle = styled(Box)`
  117. font-family: ${selectedTheme.fonts.textFont};
  118. font-size: 12px;
  119. color: ${selectedTheme.colors.primaryDarkText};
  120. line-height: 16px;
  121. `;
  122. export const OfferDescriptionText = styled(Box)`
  123. font-family: ${selectedTheme.fonts.textFont};
  124. font-size: 16px;
  125. color: ${selectedTheme.colors.primaryDarkText};
  126. line-height: 22px;
  127. max-width: calc(100% - 230px);
  128. max-height: 120px;
  129. overflow: hidden;
  130. display: -webkit-box;
  131. -webkit-line-clamp: 5;
  132. -webkit-box-orient: vertical;
  133. `;
  134. export const OfferDescription = styled(Box)`
  135. flex: 3;
  136. margin: auto 0;
  137. padding-left: 35px;
  138. `;
  139. export const Line = styled(Box)`
  140. border-left: 1px solid rgba(0, 0, 0, 0.15);
  141. height: 100px;
  142. width: 0;
  143. margin: auto 0;
  144. `;
  145. export const CheckButton = styled(PrimaryButton)`
  146. width: 180px;
  147. height: 48px;
  148. position: absolute;
  149. bottom: 9px;
  150. right: 9px;
  151. &:hover button {
  152. background-color: ${selectedTheme.colors.primaryPurple} !important;
  153. color: white !important;
  154. }
  155. `;
  156. export const MessageIcon = styled(IconButton)`
  157. width: 40px;
  158. height: 40px;
  159. background-color: ${selectedTheme.colors.primaryPurple};
  160. border-radius: 100%;
  161. padding-top: 2px;
  162. ${(props) =>
  163. props.disabled &&
  164. css`
  165. border: 1px solid ${selectedTheme.colors.borderNormal};
  166. background-color: ${selectedTheme.colors.primaryIconBackgroundColor};
  167. & button svg path {
  168. stroke: ${selectedTheme.colors.iconStrokePurpleDisabledColor};
  169. padding-top: 1px;
  170. }
  171. `}
  172. text-align: center;
  173. @media (max-width: 600px) {
  174. width: 32px;
  175. height: 32px;
  176. & button svg {
  177. width: 16px;
  178. height: 16px;
  179. position: relative;
  180. top: ${(props) => (props.disabled ? "-5px" : "-4px")};
  181. left: ${(props) => (props.disabled ? "-3px" : "-2px")};
  182. }
  183. }
  184. `;
  185. export const UserIconContainer = styled(MessageIcon)`
  186. background-color: ${selectedTheme.colors.primaryIconBackgroundColor};
  187. `;
  188. export const UserIcon = styled(User)``;
  189. export const TooltipInnerContainer = styled(Box)`
  190. width: 40px;
  191. height: 40px;
  192. position: absolute;
  193. top: 10px;
  194. right: 10px;
  195. @media (max-width: 600px) {
  196. width: 32px;
  197. height: 32px;
  198. }
  199. `;