bastienrobert/la-ferme

View on GitHub
packages/mobile/src/components/svgs/WalktroughCharacter.tsx

Summary

Maintainability
B
6 hrs
Test Coverage
import React, { FC } from 'react'
import { Svg, Path, SvgProps } from 'react-native-svg'
import { Colors } from '@la-ferme/components/native'

import { complementaries } from '@/utils/colors'

export interface WalktroughCharacterProps extends SvgProps {
  color: Colors.Theme
}

const WalktroughCharacter: FC<WalktroughCharacterProps> = ({
  color,
  ...props
}) => {
  const main = Colors[color]
  const secondary = Colors[complementaries[color]]

  return (
    <Svg viewBox="0 0 330 95" width="330" height="95" fill="none" {...props}>
      <Path
        fill={secondary}
        d="M5.1416 54.9521L5.22949 36.8906V18.5654C5.28809 18.5361 5.56641 18.5215 6.06445 18.5215H7.69043C8.30566 18.5215 8.77441 18.4922 9.09668 18.4336L14.5459 18.2139C15.9521 18.1553 17.0361 18.126 17.7979 18.126H24.7852L37.7051 17.8184C39.4629 17.8184 41.3965 17.8916 43.5059 18.0381H43.8135C44.8096 17.9795 45.4395 17.9502 45.7031 17.9502C51.5625 17.9502 56.5723 19.8105 60.7324 23.5312C62.7539 25.3184 64.3506 27.6182 65.5225 30.4307C66.6943 33.2432 67.2803 36.1582 67.2803 39.1758C67.2803 42.1641 66.9727 44.7129 66.3574 46.8223C65.7422 48.9316 64.9512 50.7188 63.9844 52.1836C60.1172 58.1016 52.6318 61.5586 41.5283 62.5547L32.0361 62.9502C31.7432 69.9814 31.5967 75.4453 31.5967 79.3418L31.6406 80.7041V84.2637C31.5234 84.6738 31.3037 84.9521 30.9814 85.0986L5.88867 85.4941C5.39062 84.0879 5.1416 81.832 5.1416 78.7266V54.9521ZM43.5938 36.0996C42.4219 33.0234 39.3164 31.3828 34.2773 31.1777C33.5449 31.1484 32.5342 31.1338 31.2451 31.1338C30.8936 31.1338 30.6738 35.4551 30.5859 44.0977L30.498 47.3936L30.6299 50.0303C34.2334 49.9717 37.3975 49.21 40.1221 47.7451C42.876 46.2803 44.2529 43.6143 44.2529 39.7471C44.2529 38.1064 44.0332 36.8906 43.5938 36.0996ZM72.1582 29.5957L71.9385 18.0381C71.9678 18.0381 72.0703 18.082 72.2461 18.1699C94.5117 17.7891 111.284 17.584 122.563 17.5547C122.681 17.6133 122.769 17.7012 122.827 17.8184V30.2109C122.827 31.4121 122.798 32.3936 122.739 33.1553C122.593 33.624 121.729 33.8584 120.146 33.8584H119.839C112.749 33.8584 105.366 33.7412 97.6904 33.5068C97.6904 33.7705 97.6465 34.2393 97.5586 34.9131C97.5 35.5869 97.4561 36.0703 97.4268 36.3633L97.207 38.0332C97.0605 39.1465 96.958 41.0801 96.8994 43.834L110.522 43.5264C112.866 43.4678 114.565 43.4385 115.62 43.4385H116.323C118.11 43.4385 119.282 43.4971 119.839 43.6143C120.396 43.7021 120.674 43.9951 120.674 44.4932L120.63 44.8447V45.8994L120.85 57.1934L120.806 57.2373V57.1934C111.899 57.6328 104.78 57.8525 99.4482 57.8525H97.3828V68.4873L121.245 67.7402C122.563 67.7402 123.398 67.9307 123.75 68.3115C123.721 69.0732 123.706 70.1572 123.706 71.5635L124.014 83.5166C124.014 84.249 123.691 84.6738 123.047 84.791L108.457 84.6592C105.586 84.6592 99.873 84.7617 91.3184 84.9668L84.1113 85.1426C79.0137 85.3184 75.2344 85.4062 72.7734 85.4062L72.6416 85.3184H72.6855C72.3926 85.0254 72.1143 84.7471 71.8506 84.4834V82.9453L72.1143 35.9678L72.1582 29.5957ZM149.106 17.9062L163.213 17.7744C166.201 17.7744 168.911 17.833 171.343 17.9502C177.876 18.126 182.842 19.6641 186.24 22.5645C189.668 25.4648 191.382 29.5518 191.382 34.8252C191.382 38.4873 190.312 41.6221 188.174 44.2295C186.035 46.8076 182.915 49.0781 178.813 51.041C185.317 53.0918 189.258 58.0723 190.635 65.9824C190.957 67.7109 191.206 69.6885 191.382 71.915C191.587 74.1416 191.748 75.6357 191.865 76.3975L192.305 78.6387C192.773 81.2754 193.184 83.1797 193.535 84.3516L193.359 84.4834C188.379 84.8057 183.823 84.9668 179.692 84.9668C175.591 84.9668 171.958 84.8936 168.794 84.7471H168.53C167.622 84.7471 166.655 80.4258 165.63 71.7832L165.41 69.8936C165.293 66.6709 164.722 64.5029 163.696 63.3896C162.7 62.2764 160.957 61.7197 158.467 61.7197L157.896 61.7637H155.566V75.123L155.61 76.5293V84.5713C155.522 84.8643 155.303 85.04 154.951 85.0986C151.729 85.2158 147.173 85.2744 141.284 85.2744C135.425 85.2744 131.558 85.2891 129.683 85.3184L129.419 85.2305L129.331 85.2744C129.272 85.2744 129.185 85.2305 129.067 85.1426L129.155 81.1875L129.111 79.8691L129.287 61.6318V58.4238L129.331 55.1279L129.375 43.7461L129.419 42.252L129.287 32.2764C129.287 32.2764 129.346 27.6035 129.463 18.2578C129.463 18.0234 130.298 17.9062 131.968 17.9062L134.78 17.9502H137.461L143.042 17.9941L149.106 17.9062ZM193.799 84.2197L193.579 84.3516V84.2637C193.579 84.2344 193.652 84.2197 193.799 84.2197ZM193.579 84.3516V84.3955C193.55 84.3955 193.535 84.3809 193.535 84.3516H193.579ZM165.366 32.2324C163.608 31.4707 161.265 31.0898 158.335 31.0898H155.786C155.464 31.5586 155.303 34.0342 155.303 38.5166C155.303 42.9697 155.376 45.958 155.522 47.4814C164.692 47.2764 169.277 44.1123 169.277 37.9893C169.277 35.3818 167.974 33.4629 165.366 32.2324ZM195.908 65.8506L219.155 65.4551C219.741 65.4551 220.225 65.9531 220.605 66.9492C221.016 67.9453 221.411 68.7363 221.792 69.3223C222.7 70.7285 224.194 71.4316 226.274 71.4316C228.384 71.4316 230.083 70.9482 231.372 69.9814C232.661 68.9854 233.306 67.7109 233.306 66.1582C233.306 64.6055 232.91 63.5508 232.119 62.9941C231.328 62.4082 230.464 61.8516 229.526 61.3242C228.589 60.7676 227.197 60.3428 225.352 60.0498C223.535 59.7568 222.539 59.5811 222.363 59.5225H222.451L219.946 58.8633C218.335 58.5703 216.987 58.248 215.903 57.8965C208.901 56.0215 203.833 53.6631 200.698 50.8213C197.593 47.9795 196.04 44.1562 196.04 39.3516C196.04 35.8652 196.685 32.7305 197.974 29.9473C199.263 27.1641 200.947 24.8936 203.027 23.1357C209.033 18.0674 217.324 15.5332 227.9 15.5332C236.309 15.5332 242.915 17.0566 247.72 20.1035H247.676C250.752 22.3301 252.861 24.5273 254.004 26.6953C255.146 28.834 255.864 31.4854 256.157 34.6494L255.015 35.792C247.31 36.085 240.483 36.2314 234.536 36.2314C232.749 36.2314 231.68 35.7041 231.328 34.6494C231.182 34.21 231.021 33.7705 230.845 33.3311C230.435 32.2764 229.116 31.749 226.89 31.749H226.714C224.985 31.749 223.506 32.1592 222.275 32.9795C221.045 33.7705 220.415 34.5469 220.386 35.3086C220.386 36.0703 220.547 36.7002 220.869 37.1982C221.221 37.6963 221.587 38.0918 221.968 38.3848C222.349 38.6777 222.935 38.9854 223.726 39.3076C224.517 39.6006 225.103 39.8057 225.483 39.9229C225.894 40.0107 226.523 40.1719 227.373 40.4062L228.911 40.8018C229.526 40.9775 231.313 41.417 234.272 42.1201C237.261 42.8232 239.751 43.4971 241.743 44.1416V44.0977C247.983 46.207 252.231 48.8438 254.487 52.0078C256.772 55.1426 257.915 58.8047 257.915 62.9941C257.915 74.1562 251.25 81.3926 237.92 84.7031C234.053 85.6699 229.922 86.3584 225.527 86.7686C220.137 86.7686 214.805 85.9775 209.531 84.3955C204.258 82.8135 200.728 80.2354 198.94 76.6611C197.739 74.9326 196.934 73.3506 196.523 71.915C196.113 70.4502 195.776 68.4141 195.513 65.8066C195.601 65.8359 195.732 65.8506 195.908 65.8506Z"
      />
      <Path
        fill={secondary}
        d="M330 49.9736C330 69.3029 314.296 86.0646 295 84.9471C277.821 83.9724 260 69.3029 260 49.9736C260 30.6442 275.68 15 295 15C312.702 15 330 30.668 330 49.9736Z"
      />
      <Path
        fill={main}
        d="M305.876 29.3145L305.815 38.2148C305.815 44.1484 305.866 49.2546 305.967 53.5332L306.239 72.333C305.735 72.7972 304.433 73.0293 302.334 73.0293L299.73 72.9688H299.216L297.975 72.999H296.733L294.826 73.0293C292.788 73.0293 290.77 72.999 288.771 72.9385L288.287 72.1816C288.085 71.8991 287.984 71.2633 287.984 70.2744C287.984 69.2855 288.065 62.7363 288.227 50.627L288.348 42.332C285.038 44.5924 281.809 46.2171 278.66 47.2061C278.519 47.1859 278.438 47.0951 278.418 46.9336V43.7246L278.388 42.3623C278.388 37.0544 278.428 34.3903 278.509 34.3701C278.59 34.3298 278.882 34.1683 279.387 33.8857C279.911 33.6032 280.507 33.3307 281.173 33.0684C281.839 32.806 282.232 32.6243 282.354 32.5234C282.495 32.4225 282.656 32.3317 282.838 32.251C288.025 29.7686 291.193 27.6292 292.344 25.833L301.668 26.0146C303.525 26.0146 304.897 25.9743 305.785 25.8936C305.846 26.0146 305.876 26.5798 305.876 27.5889V29.3145Z"
      />
    </Svg>
  )
}

export default WalktroughCharacter