Add download page with mobile app presentation

This commit is contained in:
Bojan Mojsilovic 2023-07-10 12:32:34 +02:00
parent bc0c412f30
commit 34f9c8d0a9
16 changed files with 464 additions and 7 deletions

View File

@ -0,0 +1,34 @@
<svg width="120" height="40" viewBox="0 0 120 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_1908_30387)">
<path d="M110.135 0.00013H9.53468C9.16798 0.00013 8.80568 0.00013 8.43995 0.00213C8.1338 0.00413 7.83009 0.00994 7.521 0.01483C6.84951 0.0227318 6.17961 0.0818063 5.5171 0.19154C4.85552 0.303663 4.21467 0.515046 3.61622 0.81854C3.0185 1.1246 2.47235 1.5223 1.99757 1.9972C1.5203 2.47077 1.12246 3.01815 0.81935 3.61829C0.5154 4.21724 0.304641 4.85907 0.19435 5.52161C0.0830109 6.18332 0.0230984 6.85265 0.01515 7.52361C0.00587 7.83021 0.00489 8.13783 0 8.44447V31.5587C0.00489 31.8692 0.00587 32.17 0.01515 32.4806C0.0231008 33.1516 0.0830134 33.8209 0.19435 34.4825C0.304336 35.1455 0.515108 35.7877 0.81935 36.3868C1.12233 36.985 1.52022 37.5302 1.99757 38.0011C2.47054 38.4781 3.01705 38.8761 3.61622 39.1798C4.21467 39.4841 4.85545 39.6968 5.5171 39.8106C6.17972 39.9195 6.84956 39.9786 7.521 39.9874C7.83009 39.9942 8.1338 39.9981 8.43995 39.9981C8.80567 40.0001 9.168 40.0001 9.53468 40.0001H110.135C110.494 40.0001 110.859 40.0001 111.219 39.9981C111.523 39.9981 111.836 39.9942 112.141 39.9874C112.811 39.9791 113.479 39.92 114.141 39.8106C114.804 39.696 115.448 39.4834 116.049 39.1798C116.647 38.8759 117.193 38.478 117.666 38.0011C118.142 37.5284 118.541 36.9836 118.848 36.3868C119.15 35.7872 119.358 35.1451 119.467 34.4825C119.578 33.8208 119.64 33.1516 119.652 32.4806C119.656 32.17 119.656 31.8692 119.656 31.5587C119.664 31.1954 119.664 30.8341 119.664 30.4649V9.53626C119.664 9.17005 119.664 8.80677 119.656 8.44447C119.656 8.13783 119.656 7.83021 119.652 7.52357C119.64 6.85255 119.578 6.18337 119.467 5.52157C119.358 4.85941 119.149 4.21763 118.848 3.61825C118.23 2.41533 117.252 1.43616 116.049 0.81845C115.448 0.515697 114.804 0.30437 114.141 0.19145C113.48 0.0812328 112.811 0.0221378 112.141 0.01469C111.836 0.00981 111.523 0.00395 111.219 0.002C110.859 0 110.494 0.00013 110.135 0.00013Z" fill="#A6A6A6"/>
<path d="M8.44487 39.125C8.14019 39.125 7.84287 39.1211 7.54058 39.1143C6.91436 39.1061 6.2896 39.0516 5.67144 38.9512C5.09503 38.8519 4.53664 38.6673 4.0147 38.4033C3.49754 38.1415 3.02585 37.7983 2.6177 37.3867C2.20364 36.98 1.85891 36.5082 1.59719 35.9902C1.33258 35.4688 1.14945 34.9099 1.05419 34.333C0.951311 33.7131 0.895651 33.0863 0.887687 32.458C0.881347 32.2471 0.873047 31.5449 0.873047 31.5449V8.44434C0.873047 8.44434 0.881887 7.75293 0.887737 7.5498C0.895363 6.92248 0.950699 6.29665 1.05327 5.67773C1.14871 5.09925 1.33197 4.53875 1.59673 4.01563C1.85749 3.49794 2.2003 3.02586 2.61187 2.61768C3.02297 2.20562 3.49617 1.8606 4.01421 1.59521C4.53495 1.33209 5.09228 1.14873 5.66753 1.05127C6.28772 0.949836 6.91465 0.894996 7.54304 0.88721L8.44536 0.875H111.214L112.127 0.8877C112.75 0.895099 113.371 0.94945 113.985 1.05029C114.566 1.14898 115.13 1.33362 115.656 1.59814C116.694 2.13299 117.539 2.97916 118.071 4.01807C118.332 4.53758 118.512 5.09351 118.607 5.66699C118.71 6.29099 118.768 6.92174 118.78 7.5542C118.783 7.8374 118.783 8.1416 118.783 8.44434C118.791 8.81934 118.791 9.17627 118.791 9.53613V30.4648C118.791 30.8281 118.791 31.1826 118.783 31.54C118.783 31.8652 118.783 32.1631 118.779 32.4697C118.768 33.0909 118.711 33.7104 118.608 34.3232C118.515 34.9043 118.333 35.4675 118.068 35.9932C117.805 36.5056 117.462 36.9733 117.053 37.3789C116.644 37.7927 116.172 38.1379 115.653 38.4014C115.128 38.6674 114.566 38.8527 113.985 38.9512C113.367 39.0522 112.742 39.1067 112.116 39.1143C111.823 39.1211 111.517 39.125 111.219 39.125L110.135 39.127L8.44487 39.125Z" fill="black"/>
<path d="M24.769 20.3008C24.7797 19.4662 25.0014 18.6478 25.4135 17.9218C25.8255 17.1959 26.4145 16.5859 27.1256 16.1488C26.6738 15.5036 26.0779 14.9727 25.385 14.5981C24.6922 14.2236 23.9216 14.0157 23.1344 13.9911C21.4552 13.8148 19.8272 14.9959 18.9715 14.9959C18.0992 14.9959 16.7817 14.0086 15.363 14.0378C14.4453 14.0674 13.551 14.3343 12.7671 14.8123C11.9832 15.2904 11.3365 15.9633 10.8901 16.7656C8.95607 20.1141 10.3987 25.0351 12.2513 27.7417C13.1782 29.0671 14.2615 30.5475 15.6789 30.495C17.066 30.4375 17.584 29.6105 19.2583 29.6105C20.9171 29.6105 21.4031 30.495 22.8493 30.4616C24.3377 30.4375 25.2754 29.1304 26.1698 27.7925C26.8358 26.8481 27.3483 25.8044 27.6882 24.7C26.8235 24.3343 26.0856 23.7221 25.5665 22.9398C25.0474 22.1575 24.77 21.2397 24.769 20.3008Z" fill="white"/>
<path d="M22.0373 12.2108C22.8489 11.2366 23.2487 9.98445 23.1518 8.72021C21.912 8.85044 20.7668 9.44299 19.9443 10.3798C19.5421 10.8375 19.2341 11.3699 19.0379 11.9467C18.8416 12.5235 18.761 13.1333 18.8006 13.7412C19.4207 13.7476 20.0342 13.6132 20.5949 13.3481C21.1555 13.083 21.6487 12.6942 22.0373 12.2108Z" fill="white"/>
<path d="M42.3025 27.1397H37.5691L36.4324 30.4961H34.4275L38.9109 18.0781H40.9939L45.4773 30.4961H43.4382L42.3025 27.1397ZM38.0593 25.5908H41.8113L39.9617 20.1436H39.91L38.0593 25.5908Z" fill="white"/>
<path d="M55.1599 25.9699C55.1599 28.7834 53.6541 30.591 51.3816 30.591C50.806 30.6211 50.2335 30.4885 49.7297 30.2084C49.2259 29.9283 48.8112 29.5119 48.533 29.007H48.49V33.4914H46.6316V21.4426H48.4305V22.9485H48.4646C48.7556 22.446 49.1773 22.0318 49.6849 21.7499C50.1926 21.4681 50.7671 21.3291 51.3474 21.3479C53.6453 21.3479 55.1599 23.1643 55.1599 25.9699ZM53.2498 25.9699C53.2498 24.1369 52.3025 22.9319 50.8572 22.9319C49.4373 22.9319 48.4822 24.1623 48.4822 25.9699C48.4822 27.7942 49.4373 29.0158 50.8572 29.0158C52.3025 29.0158 53.2498 27.8196 53.2498 25.9699Z" fill="white"/>
<path d="M65.1248 25.9699C65.1248 28.7834 63.6189 30.591 61.3465 30.591C60.7708 30.6211 60.1983 30.4885 59.6945 30.2084C59.1907 29.9283 58.776 29.5119 58.4978 29.007H58.4548V33.4914H56.5964V21.4426H58.3953V22.9484H58.4294C58.7204 22.446 59.1421 22.0318 59.6498 21.7499C60.1574 21.4681 60.7319 21.3291 61.3123 21.3479C63.6101 21.3479 65.1248 23.1643 65.1248 25.9699ZM63.2146 25.9699C63.2146 24.1369 62.2674 22.9318 60.822 22.9318C59.4021 22.9318 58.447 24.1623 58.447 25.9699C58.447 27.7942 59.4021 29.0158 60.822 29.0158C62.2674 29.0158 63.2146 27.8195 63.2146 25.9699Z" fill="white"/>
<path d="M71.7107 27.0362C71.8484 28.2676 73.0447 29.0762 74.6795 29.0762C76.2459 29.0762 77.3728 28.2676 77.3728 27.1572C77.3728 26.1934 76.6931 25.6162 75.0838 25.2207L73.4744 24.833C71.1941 24.2822 70.1355 23.2158 70.1355 21.4854C70.1355 19.3428 72.0027 17.8711 74.6541 17.8711C77.2781 17.8711 79.0769 19.3428 79.1375 21.4854H77.2615C77.1492 20.2461 76.1248 19.4981 74.6277 19.4981C73.1306 19.4981 72.1062 20.2549 72.1062 21.3565C72.1062 22.2344 72.7605 22.751 74.3611 23.1465L75.7292 23.4824C78.2771 24.0849 79.3357 25.1084 79.3357 26.9248C79.3357 29.248 77.4851 30.7031 74.5417 30.7031C71.7878 30.7031 69.9285 29.2822 69.8083 27.0361L71.7107 27.0362Z" fill="white"/>
<path d="M83.3464 19.2998V21.4424H85.0681V22.9141H83.3464V27.9053C83.3464 28.6807 83.6912 29.042 84.448 29.042C84.6524 29.0384 84.8564 29.0241 85.0593 28.999V30.4619C84.719 30.5255 84.3732 30.5543 84.0271 30.5478C82.1941 30.5478 81.4792 29.8593 81.4792 28.1035V22.9141H80.1628V21.4424H81.4792V19.2998H83.3464Z" fill="white"/>
<path d="M86.0652 25.9697C86.0652 23.1211 87.7429 21.3311 90.3591 21.3311C92.9841 21.3311 94.6541 23.1211 94.6541 25.9697C94.6541 28.8262 92.9929 30.6084 90.3591 30.6084C87.7263 30.6084 86.0652 28.8262 86.0652 25.9697ZM92.7605 25.9697C92.7605 24.0156 91.865 22.8623 90.3591 22.8623C88.8533 22.8623 87.9587 24.0244 87.9587 25.9697C87.9587 27.9316 88.8533 29.0762 90.3591 29.0762C91.865 29.0762 92.7605 27.9316 92.7605 25.9697Z" fill="white"/>
<path d="M96.1863 21.4425H97.9587V22.9835H98.0017C98.1217 22.5022 98.4036 22.0769 98.8002 21.779C99.1968 21.4811 99.6838 21.3288 100.179 21.3478C100.394 21.347 100.607 21.3703 100.816 21.4171V23.1554C100.546 23.0728 100.264 23.0348 99.9812 23.0431C99.7112 23.0321 99.4421 23.0797 99.1922 23.1826C98.9424 23.2855 98.7178 23.4412 98.5338 23.6391C98.3498 23.837 98.2108 24.0724 98.1264 24.3291C98.042 24.5857 98.0141 24.8576 98.0447 25.1261V30.4962H96.1863L96.1863 21.4425Z" fill="white"/>
<path d="M109.385 27.8369C109.135 29.4805 107.534 30.6084 105.486 30.6084C102.852 30.6084 101.218 28.8437 101.218 26.0127C101.218 23.1729 102.861 21.3311 105.408 21.3311C107.913 21.3311 109.488 23.0518 109.488 25.7969V26.4336H103.094V26.5459C103.064 26.8791 103.106 27.2148 103.216 27.5306C103.326 27.8464 103.502 28.1352 103.733 28.3778C103.963 28.6203 104.242 28.8111 104.552 28.9374C104.862 29.0637 105.195 29.1226 105.529 29.1103C105.968 29.1515 106.409 29.0498 106.786 28.8203C107.162 28.5909 107.455 28.246 107.62 27.8369L109.385 27.8369ZM103.102 25.1348H107.629C107.645 24.8352 107.6 24.5354 107.495 24.2541C107.391 23.9729 107.229 23.7164 107.02 23.5006C106.812 23.2849 106.561 23.1145 106.284 23.0003C106.006 22.8861 105.708 22.8305 105.408 22.8369C105.105 22.8351 104.805 22.8933 104.525 23.008C104.245 23.1227 103.991 23.2918 103.776 23.5054C103.562 23.7191 103.392 23.973 103.276 24.2527C103.161 24.5323 103.102 24.8321 103.102 25.1348Z" fill="white"/>
<path d="M37.8262 8.73089C38.2158 8.70293 38.6067 8.76179 38.9709 8.90323C39.335 9.04466 39.6632 9.26514 39.9317 9.54876C40.2003 9.83239 40.4026 10.1721 40.524 10.5434C40.6454 10.9146 40.6829 11.3082 40.6338 11.6957C40.6338 13.602 39.6035 14.6977 37.8262 14.6977H35.6709V8.73089H37.8262ZM36.5976 13.8539H37.7226C38.0011 13.8705 38.2797 13.8249 38.5382 13.7203C38.7967 13.6157 39.0287 13.4547 39.2172 13.2491C39.4057 13.0436 39.546 12.7986 39.6278 12.532C39.7097 12.2653 39.7311 11.9838 39.6904 11.7079C39.7281 11.4331 39.7046 11.1533 39.6215 10.8886C39.5383 10.624 39.3977 10.381 39.2096 10.177C39.0216 9.9731 38.7907 9.81329 38.5337 9.70905C38.2766 9.60481 37.9996 9.55873 37.7226 9.5741H36.5976V13.8539Z" fill="white"/>
<path d="M41.6807 12.4443C41.6524 12.1484 41.6862 11.8498 41.7801 11.5677C41.8739 11.2857 42.0257 11.0263 42.2256 10.8063C42.4256 10.5864 42.6693 10.4106 42.9411 10.2903C43.213 10.17 43.507 10.1079 43.8042 10.1079C44.1015 10.1079 44.3955 10.17 44.6673 10.2903C44.9392 10.4106 45.1829 10.5864 45.3828 10.8063C45.5828 11.0263 45.7345 11.2857 45.8284 11.5677C45.9222 11.8498 45.9561 12.1484 45.9278 12.4443C45.9566 12.7405 45.9232 13.0395 45.8296 13.322C45.736 13.6045 45.5843 13.8644 45.3843 14.0848C45.1843 14.3052 44.9404 14.4813 44.6683 14.6019C44.3962 14.7224 44.1019 14.7847 43.8042 14.7847C43.5066 14.7847 43.2123 14.7224 42.9402 14.6019C42.668 14.4813 42.4241 14.3052 42.2241 14.0848C42.0242 13.8644 41.8725 13.6045 41.7789 13.322C41.6853 13.0395 41.6519 12.7405 41.6807 12.4443ZM45.0137 12.4443C45.0137 11.4682 44.5752 10.8974 43.8057 10.8974C43.0332 10.8974 42.5987 11.4682 42.5987 12.4443C42.5987 13.4282 43.0333 13.9946 43.8057 13.9946C44.5752 13.9946 45.0137 13.4243 45.0137 12.4443Z" fill="white"/>
<path d="M51.5732 14.6978H50.6514L49.7207 11.3813H49.6504L48.7236 14.6978H47.8105L46.5693 10.1948H47.4707L48.2773 13.6308H48.3438L49.2695 10.1948H50.1221L51.0479 13.6308H51.1182L51.9209 10.1948H52.8096L51.5732 14.6978Z" fill="white"/>
<path d="M53.8535 10.1949H54.709V10.9102H54.7754C54.888 10.6533 55.0781 10.4379 55.3189 10.2941C55.5598 10.1503 55.8395 10.0852 56.1191 10.1079C56.3382 10.0915 56.5582 10.1245 56.7628 10.2046C56.9674 10.2847 57.1514 10.4098 57.3011 10.5707C57.4508 10.7315 57.5623 10.924 57.6275 11.1338C57.6927 11.3436 57.7099 11.5654 57.6777 11.7827V14.6977H56.7891V12.0059C56.7891 11.2823 56.4746 10.9224 55.8174 10.9224C55.6686 10.9155 55.5201 10.9408 55.3821 10.9966C55.244 11.0525 55.1197 11.1375 55.0175 11.2459C54.9154 11.3543 54.8379 11.4834 54.7904 11.6246C54.7429 11.7657 54.7264 11.9154 54.7422 12.0635V14.6978H53.8535L53.8535 10.1949Z" fill="white"/>
<path d="M59.0938 8.43701H59.9824V14.6978H59.0938V8.43701Z" fill="white"/>
<path d="M61.2178 12.4444C61.1895 12.1484 61.2234 11.8499 61.3172 11.5678C61.4111 11.2857 61.5629 11.0263 61.7628 10.8064C61.9628 10.5864 62.2065 10.4106 62.4784 10.2903C62.7503 10.17 63.0443 10.1079 63.3416 10.1079C63.6389 10.1079 63.9329 10.17 64.2047 10.2903C64.4766 10.4106 64.7203 10.5864 64.9203 10.8064C65.1203 11.0263 65.272 11.2857 65.3659 11.5678C65.4598 11.8499 65.4936 12.1484 65.4653 12.4444C65.4942 12.7406 65.4607 13.0396 65.3671 13.3221C65.2734 13.6046 65.1217 13.8645 64.9217 14.0849C64.7217 14.3053 64.4778 14.4814 64.2057 14.6019C63.9335 14.7225 63.6392 14.7847 63.3416 14.7847C63.0439 14.7847 62.7496 14.7225 62.4775 14.6019C62.2053 14.4814 61.9614 14.3053 61.7614 14.0849C61.5614 13.8645 61.4097 13.6046 61.3161 13.3221C61.2225 13.0396 61.189 12.7406 61.2178 12.4444ZM64.5508 12.4444C64.5508 11.4683 64.1123 10.8975 63.3428 10.8975C62.5703 10.8975 62.1358 11.4683 62.1358 12.4444C62.1358 13.4283 62.5704 13.9947 63.3428 13.9947C64.1123 13.9947 64.5508 13.4244 64.5508 12.4444Z" fill="white"/>
<path d="M66.4009 13.4243C66.4009 12.6138 67.0044 12.1465 68.0757 12.0801L69.2954 12.0098V11.6211C69.2954 11.1455 68.981 10.877 68.3735 10.877C67.8774 10.877 67.5337 11.0591 67.4351 11.3774H66.5747C66.6655 10.604 67.3931 10.1079 68.4146 10.1079C69.5435 10.1079 70.1802 10.6699 70.1802 11.6211V14.6978H69.3247V14.0649H69.2544C69.1117 14.2919 68.9113 14.477 68.6737 14.6012C68.436 14.7254 68.1697 14.7843 67.9019 14.7719C67.7128 14.7916 67.5218 14.7714 67.341 14.7127C67.1602 14.654 66.9938 14.5581 66.8524 14.4311C66.711 14.3042 66.5977 14.149 66.52 13.9756C66.4422 13.8021 66.4016 13.6144 66.4009 13.4243ZM69.2954 13.0395V12.6631L68.1958 12.7334C67.5757 12.7749 67.2944 12.9858 67.2944 13.3828C67.2944 13.7881 67.646 14.0239 68.1294 14.0239C68.2711 14.0382 68.4142 14.0239 68.5502 13.9819C68.6862 13.9398 68.8123 13.8707 68.9211 13.7789C69.0299 13.6871 69.1191 13.5743 69.1834 13.4473C69.2477 13.3202 69.2858 13.1816 69.2954 13.0395Z" fill="white"/>
<path d="M71.3481 12.4444C71.3481 11.0215 72.0796 10.1201 73.2173 10.1201C73.4987 10.1072 73.778 10.1746 74.0225 10.3145C74.267 10.4544 74.4667 10.661 74.5981 10.9101H74.6646V8.43701H75.5532V14.6978H74.7017V13.9863H74.6314C74.4897 14.2338 74.2831 14.4378 74.0339 14.5763C73.7846 14.7148 73.5022 14.7825 73.2173 14.772C72.0718 14.772 71.3481 13.8706 71.3481 12.4444ZM72.2661 12.4444C72.2661 13.3994 72.7163 13.9741 73.4693 13.9741C74.2183 13.9741 74.6812 13.3911 74.6812 12.4483C74.6812 11.5098 74.2134 10.9185 73.4693 10.9185C72.7212 10.9185 72.2661 11.4971 72.2661 12.4444Z" fill="white"/>
<path d="M79.23 12.4443C79.2017 12.1484 79.2356 11.8498 79.3294 11.5677C79.4232 11.2857 79.575 11.0263 79.7749 10.8063C79.9749 10.5864 80.2186 10.4106 80.4904 10.2903C80.7623 10.17 81.0563 10.1079 81.3536 10.1079C81.6508 10.1079 81.9448 10.17 82.2167 10.2903C82.4885 10.4106 82.7322 10.5864 82.9322 10.8063C83.1321 11.0263 83.2839 11.2857 83.3777 11.5677C83.4715 11.8498 83.5054 12.1484 83.4771 12.4443C83.5059 12.7405 83.4725 13.0395 83.3789 13.322C83.2853 13.6045 83.1336 13.8644 82.9336 14.0848C82.7336 14.3052 82.4897 14.4813 82.2176 14.6019C81.9455 14.7224 81.6512 14.7847 81.3536 14.7847C81.0559 14.7847 80.7616 14.7224 80.4895 14.6019C80.2173 14.4813 79.9735 14.3052 79.7735 14.0848C79.5735 13.8644 79.4218 13.6045 79.3282 13.322C79.2346 13.0395 79.2012 12.7405 79.23 12.4443ZM82.563 12.4443C82.563 11.4682 82.1245 10.8974 81.355 10.8974C80.5826 10.8974 80.148 11.4682 80.148 12.4443C80.148 13.4282 80.5826 13.9946 81.355 13.9946C82.1245 13.9946 82.563 13.4243 82.563 12.4443Z" fill="white"/>
<path d="M84.6694 10.1949H85.5249V10.9102H85.5913C85.704 10.6533 85.894 10.4379 86.1348 10.2941C86.3757 10.1503 86.6555 10.0852 86.9351 10.1079C87.1542 10.0915 87.3742 10.1245 87.5788 10.2046C87.7834 10.2847 87.9673 10.4098 88.117 10.5707C88.2667 10.7315 88.3783 10.924 88.4435 11.1338C88.5087 11.3436 88.5258 11.5654 88.4937 11.7827V14.6977H87.605V12.0059C87.605 11.2823 87.2905 10.9224 86.6333 10.9224C86.4846 10.9155 86.336 10.9408 86.198 10.9966C86.0599 11.0525 85.9356 11.1375 85.8335 11.2459C85.7313 11.3543 85.6539 11.4834 85.6063 11.6246C85.5588 11.7657 85.5423 11.9154 85.5581 12.0635V14.6978H84.6694V10.1949Z" fill="white"/>
<path d="M93.5151 9.07373V10.2153H94.4907V10.9639H93.5151V13.2793C93.5151 13.751 93.7095 13.9575 94.1519 13.9575C94.2651 13.9572 94.3783 13.9503 94.4907 13.937V14.6772C94.3311 14.7058 94.1694 14.721 94.0073 14.7226C93.019 14.7226 92.6255 14.375 92.6255 13.5068V10.9638H91.9106V10.2153H92.6255V9.07373H93.5151Z" fill="white"/>
<path d="M95.7046 8.43701H96.5854V10.9185H96.6558C96.7739 10.6591 96.9691 10.4425 97.2148 10.2982C97.4605 10.1539 97.7447 10.0888 98.0288 10.1118C98.2467 10.1 98.4646 10.1364 98.6669 10.2184C98.8692 10.3004 99.0508 10.4261 99.199 10.5864C99.3471 10.7468 99.458 10.9378 99.5238 11.146C99.5896 11.3541 99.6086 11.5742 99.5795 11.7905V14.6978H98.69V12.0098C98.69 11.2905 98.355 10.9263 97.7271 10.9263C97.5743 10.9137 97.4207 10.9347 97.2769 10.9878C97.1332 11.0408 97.0027 11.1247 96.8947 11.2334C96.7867 11.3421 96.7038 11.4732 96.6517 11.6173C96.5997 11.7614 96.5797 11.9152 96.5933 12.0679V14.6977H95.7046L95.7046 8.43701Z" fill="white"/>
<path d="M104.761 13.482C104.64 13.8935 104.379 14.2495 104.022 14.4877C103.665 14.7258 103.236 14.831 102.81 14.7847C102.513 14.7926 102.218 14.7357 101.946 14.6182C101.673 14.5007 101.43 14.3253 101.232 14.1041C101.034 13.883 100.887 13.6214 100.8 13.3376C100.713 13.0538 100.689 12.7545 100.73 12.4605C100.69 12.1656 100.715 11.8657 100.801 11.581C100.888 11.2964 101.034 11.0336 101.231 10.8105C101.428 10.5874 101.671 10.4093 101.942 10.2881C102.214 10.1669 102.509 10.1054 102.806 10.108C104.059 10.108 104.815 10.964 104.815 12.378V12.6881H101.635V12.7379C101.621 12.9031 101.642 13.0695 101.696 13.2262C101.75 13.383 101.837 13.5267 101.949 13.6481C102.062 13.7696 102.199 13.8661 102.352 13.9315C102.504 13.9969 102.669 14.0297 102.834 14.0279C103.047 14.0534 103.262 14.0151 103.453 13.9179C103.644 13.8207 103.801 13.669 103.906 13.482L104.761 13.482ZM101.635 12.0308H103.91C103.921 11.8797 103.9 11.7279 103.849 11.5852C103.798 11.4425 103.718 11.312 103.614 11.2021C103.509 11.0923 103.383 11.0055 103.243 10.9473C103.103 10.8891 102.953 10.8609 102.801 10.8643C102.647 10.8624 102.495 10.8913 102.353 10.9492C102.21 11.0072 102.081 11.093 101.972 11.2017C101.864 11.3104 101.778 11.4398 101.72 11.5822C101.662 11.7246 101.633 11.8771 101.635 12.0308Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_1908_30387">
<rect width="119.664" height="40" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 18 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -44,6 +44,7 @@ const NavMenu: Component = () => {
to: '/downloads',
label: intl.formatMessage(t.downloads),
icon: 'downloadIcon',
bubble: () => notifications?.downloadsCount || 0,
},
{
to: '/settings',

View File

@ -249,3 +249,6 @@ export const defaultNotificationSettings: Record<string, boolean> = {
};
export const emojiSearchLimit = 1;
export const today = (new Date()).getTime();
export const iosRD = (new Date('07/11/2023')).getTime();

View File

@ -1,8 +1,9 @@
import { createStore } from "solid-js/store";
import { Kind } from "../constants";
import { andRD, iosRD, Kind, today } from "../constants";
import {
createContext,
createEffect,
createSignal,
onCleanup,
useContext
} from "solid-js";
@ -23,15 +24,16 @@ import { useAccountContext } from "./AccountContext";
export type NotificationsContextStore = {
notificationCount: number,
downloadsCount: number,
actions: {
}
}
export const initialData = {
notificationCount: 0,
downloadsCount: 0,
};
export const NotificationsContext = createContext<NotificationsContextStore>();
export const NotificationsProvider = (props: { children: ContextChildren }) => {
@ -51,6 +53,20 @@ export const NotificationsProvider = (props: { children: ContextChildren }) => {
subscribeToNotificationStats(account?.publicKey, subid);
}
const calculateDownloadCount = () => {
const iosDownload = localStorage.getItem('iosDownload');
const andDownload = localStorage.getItem('andDownload');
let count = 0;
if (!iosDownload && today > iosRD) {
count++;
}
updateStore('downloadsCount', () => count);
};
// SOCKET HANDLERS ------------------------------
const onMessage = (event: MessageEvent) => {
@ -73,6 +89,8 @@ export const NotificationsProvider = (props: { children: ContextChildren }) => {
updateStore('notificationCount', () => sum)
}
calculateDownloadCount();
}
}
};
@ -103,6 +121,8 @@ export const NotificationsProvider = (props: { children: ContextChildren }) => {
}
});
createEffect(() => {});
onCleanup(() => {
removeSocketListeners(
socket(),

View File

@ -0,0 +1,208 @@
.fullHeader {
display: grid;
height: 128px;
align-items: center;
justify-content: left;
>div {
font-weight: 300;
font-size: 32px;
line-height: 34px;
color: var(--brand-text);
text-transform: lowercase;
}
}
.callToAction {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
.ctaTitle {
color: var(--text-primary);
text-align: center;
font-size: 36px;
font-weight: 600;
line-height: 36px;
margin-bottom: 8px;
}
.ctaDescription {
color: var(--text-secondary-2);
text-align: center;
font-size: 16px;
font-weight: 400;
line-height: 24px;
max-width: 430px;
}
}
.promoHolder {
position: relative;
height: 560px;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
margin-top: 24px;
.phones {
z-index: 10;
}
.phoneReflections {
margin-top: -27px;
>img:last-child {
margin-left: 44px;
}
}
.backdrop {
position: absolute;
top: 24px;
width: 563px;
height: 496px;
border-radius: 563px;
background: linear-gradient(161deg, rgba(255, 159, 47, 0.30) 0%, rgba(250, 67, 67, 0.30) 27.67%, rgba(188, 24, 112, 0.30) 60.59%, rgba(91, 18, 164, 0.30) 85.21%);
filter: blur(60px);
}
.backdropLight {
position: absolute;
top: 24px;
width: 563px;
height: 496px;
border-radius: 563px;
background: rgba(0, 0, 0, 0.12);
filter: blur(60px);
}
}
.linkHolder {
display: flex;
justify-content: center;
align-items: center;
margin-top: -27px;
>div {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
width: 290px;
&:last-child {
width: 279px;
}
}
div {
color: var(--text-primary);
text-align: center;
font-size: 18px;
font-weight: 400;
line-height: 20px;
}
.appStore {
>a {
margin-top: 16px;
width: 120px;
height: 40px;
}
}
.playStore {
>a {
margin-top: 16px;
width: 134px;
height: 40px;
}
}
}
.downloadsSidebar {
.title {
color: var(--text-secondary-2);
font-size: 18px;
font-weight: 800;
line-height: 20px;
text-transform: uppercase;
margin-bottom: 20px;
}
.list {
>div {
display: flex;
align-items: center;
.githubIcon {
width: 24px;
height: 24px;
display: inline-block;
margin-right: 9px;
background-image: url( '../assets/icons/github.svg');
background-size: contain;
}
.githubIconLight {
width: 24px;
height: 24px;
display: inline-block;
margin-right: 9px;
background-image: url( '../assets/icons/github_light.svg');
background-size: contain;
}
>a {
color: var(--text-secondary-2);
font-size: 16px;
font-weight: 400;
line-height: 40px;
}
}
}
}
@media only screen and (max-width: 720px) {
.promoHolder {
display: none;
}
.linkHolder {
margin-top: 20px;
flex-direction: column;
>div {
> div {
display: none;
}
>a {
>img {
max-width: none;
width: 188px;
height: 63px;
}
}
width: 100%;
margin-bottom: 20px;
}
.appStore {
>a {
width: 188px;
height: 63px;
}
}
.playStore {
display: none;
}
}
}

View File

@ -1,13 +1,155 @@
import { Component } from 'solid-js';
import MissingPage from '../components/MissingPage/MissingPage';
import { Component, onMount, Show } from 'solid-js';
import Branding from '../components/Branding/Branding';
import Wormhole from '../components/Wormhole/Wormhole';
import Search from '../components/Search/Search';
import iphone from '../assets/images/primal_iphone.png';
import android from '../assets/images/primal_android.png';
import iphoneReflection from '../assets/images/primal_iphone_reflection.png';
import androidReflection from '../assets/images/primal_android_reflection.png';
import iphoneLight from '../assets/images/primal_iphone_light.png';
import androidLight from '../assets/images/primal_android_light.png';
import iphoneReflectionLight from '../assets/images/primal_iphone_reflection_light.png';
import androidReflectionLight from '../assets/images/primal_android_reflection_light.png';
import appStore from '../assets/images/appstore_download.svg';
import playStore from '../assets/images/playstore_download.svg';
import styles from './Downloads.module.scss';
import { downloads as t } from '../translations';
import { useIntl } from '@cookbook/solid-intl';
import StickySidebar from '../components/StickySidebar/StickySidebar';
import { useSettingsContext } from '../contexts/SettingsContext';
import { iosRD, today } from '../constants';
const Downloads: Component = () => {
const intl = useIntl();
const settings = useSettingsContext();
onMount(() => {
if (today > iosRD) {
localStorage.setItem('iosDownload', 'seen');
}
});
return (
<>
<MissingPage title="downloads" />
</>
<div class={styles.downloadsContainer}>
<Wormhole to="branding_holder">
<Branding small={false} />
</Wormhole>
<Wormhole
to="search_section"
>
<Search />
</Wormhole>
<StickySidebar>
<div class={styles.downloadsSidebar}>
<div class={styles.title}>Source codes</div>
<div class={styles.list}>
<div>
<Show
when={['sunset', 'midnight'].includes(settings?.theme || 'sunset')}
fallback={
<div class={styles.githubIconLight}></div>
}
>
<div class={styles.githubIcon}></div>
</Show>
<a
href='https://github.com/PrimalHQ/primal-web-app'
target='_blank'
>
{intl.formatMessage(t.links.webApp)}
</a>
</div>
<div>
<Show
when={['sunset', 'midnight'].includes(settings?.theme || 'sunset')}
fallback={
<div class={styles.githubIconLight}></div>
}
>
<div class={styles.githubIcon}></div>
</Show>
<a
href='https://github.com/PrimalHQ/primal-caching-service'
target='_blank'
>
{intl.formatMessage(t.links.cachingService)}
</a>
</div>
</div>
</div>
</StickySidebar>
<div id="central_header" class={styles.fullHeader}>
<div>
{intl.formatMessage(t.title)}
</div>
</div>
<div class={styles.callToAction}>
<div class={styles.ctaTitle}>
{intl.formatMessage(t.callToActionTitle)}
</div>
<div class={styles.ctaDescription}>
{intl.formatMessage(t.callToActionDescription)}
</div>
</div>
<Show
when={['sunset', 'midnight'].includes(settings?.theme || 'sunset')}
fallback={
<div class={styles.promoHolder}>
<div class={styles.phones}>
<img src={iphoneLight} />
<img src={androidLight} />
</div>
<div class={styles.backdropLight}></div>
<div class={styles.phoneReflections}>
<img src={iphoneReflectionLight} />
<img src={androidReflectionLight} />
</div>
</div>
}
>
<div class={styles.promoHolder}>
<div class={styles.phones}>
<img src={iphone} />
<img src={android} />
</div>
<div class={styles.backdrop}></div>
<div class={styles.phoneReflections}>
<img src={iphoneReflection} />
<img src={androidReflection} />
</div>
</div>
</Show>
<div class={styles.linkHolder}>
<div class={styles.appStore}>
<div>{intl.formatMessage(t.appStoreCaption)}</div>
<a
href='https://testflight.apple.com/join/Is4tmDDR'
target='_blank'
>
<img src={appStore} />
</a>
</div>
<div class={styles.playStore}>
<div>{intl.formatMessage(t.playStoreCaption)}</div>
<a>
<img src={playStore} />
</a>
</div>
</div>
</div>
);
}

View File

@ -79,6 +79,46 @@ export const branding = {
description: 'Brand name',
};
export const downloads = {
title: {
id: 'downloads.title',
defaultMessage: 'Downloads',
description: 'Title of the downloads page',
},
callToActionTitle: {
id: 'downloads.ctaTitle',
defaultMessage: 'Primal iOS TestFlight is Here!',
description: 'Title for the downloads\' page call-to-action',
},
callToActionDescription: {
id: 'downloads.ctaDescription',
defaultMessage: 'The app features easy onboarding, fast & snappy UI, ability to explore Nostr, and create & manage custom feeds',
description: 'Description for the downloads\' page call-to-action',
},
appStoreCaption: {
id: 'downloads.appStoreCaption',
defaultMessage: 'TestFlight Available Now',
description: 'AppStore promo caption',
},
playStoreCaption: {
id: 'downloads.playStoreCaption',
defaultMessage: 'Coming soon to Android',
description: 'PlayStore promo caption',
},
links: {
webApp: {
id: 'downloads.webAppLink',
defaultMessage: 'Primal Web App',
description: 'Label for the link to the web app',
},
cachingService: {
id: 'downloads.cachingService',
defaultMessage: 'Primal Caching Service',
description: 'Label for the link to the caching service',
},
},
};
export const exploreSidebarCaption = {
id: 'explore.sidebar.caption',
defaultMessage: 'trending users',