Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
F
frontend
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
vicotor
frontend
Commits
3d0f35ba
Commit
3d0f35ba
authored
Apr 05, 2023
by
tom
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fields for social links
parent
6cb1131a
Changes
15
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
151 additions
and
3 deletions
+151
-3
discord_filled.svg
icons/social/discord_filled.svg
+3
-0
facebook_filled.svg
icons/social/facebook_filled.svg
+3
-0
github_filled.svg
icons/social/github_filled.svg
+3
-0
linkedin_filled.svg
icons/social/linkedin_filled.svg
+3
-0
medium_filled.svg
icons/social/medium_filled.svg
+3
-0
opensea_filled.svg
icons/social/opensea_filled.svg
+8
-0
reddit_filled.svg
icons/social/reddit_filled.svg
+3
-0
slack_filled.svg
icons/social/slack_filled.svg
+3
-0
telegram_filled.svg
icons/social/telegram_filled.svg
+3
-0
twitter_filled.svg
icons/social/twitter_filled.svg
+3
-0
colors.ts
theme/foundations/colors.ts
+6
-0
TokenInfoForm.tsx
ui/tokenInfo/TokenInfoForm.tsx
+13
-0
TokenInfoFieldPriceTicker.tsx
ui/tokenInfo/fields/TokenInfoFieldPriceTicker.tsx
+2
-2
TokenInfoFieldSocialLink.tsx
ui/tokenInfo/fields/TokenInfoFieldSocialLink.tsx
+78
-0
types.ts
ui/tokenInfo/types.ts
+17
-1
No files found.
icons/social/discord_filled.svg
0 → 100644
View file @
3d0f35ba
<svg
viewBox=
"0 0 24 24"
fill=
"none"
xmlns=
"http://www.w3.org/2000/svg"
>
<path
fill-rule=
"evenodd"
clip-rule=
"evenodd"
d=
"M22 12c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2s10 4.477 10 10Zm-8.293-4.547c1.539.117 2.84 1.137 2.84 1.137s1.453 2.11 1.71 6.25c-1.464 1.691-3.69 1.703-3.69 1.703l-.466-.621a5.672 5.672 0 0 0 2.454-1.652c-.922.699-2.309 1.422-4.547 1.422-2.239 0-3.63-.727-4.547-1.422a5.672 5.672 0 0 0 2.453 1.652l-.465.621s-2.226-.012-3.691-1.703c.25-4.14 1.703-6.25 1.703-6.25s1.226-.984 2.84-1.137l.136.278c-1.27.285-2.027.828-2.695 1.425 1.149-.586 2.285-1.136 4.262-1.136 1.976 0 3.113.55 4.262 1.136-.668-.597-1.305-1.086-2.696-1.425l.137-.278Zm-4.55 5.114c0 .628.444 1.136.995 1.136.551 0 .996-.508.996-1.136 0-.63-.445-1.137-.996-1.137-.55 0-.996.508-.996 1.137Zm3.694 0c0 .628.446 1.136.997 1.136.546 0 .996-.508.996-1.136 0-.63-.446-1.137-.996-1.137-.551 0-.997.508-.997 1.137Z"
fill=
"currentColor"
/>
</svg>
icons/social/facebook_filled.svg
0 → 100644
View file @
3d0f35ba
<svg
viewBox=
"0 0 24 24"
fill=
"none"
xmlns=
"http://www.w3.org/2000/svg"
>
<path
d=
"M22.122 12.061C22.122 6.505 17.618 2 12.062 2 6.504 2 2 6.505 2 12.061c0 5.022 3.68 9.184 8.49 9.939v-7.03H7.933v-2.91h2.555V9.845c0-2.522 1.502-3.915 3.8-3.915 1.101 0 2.252.197 2.252.197v2.476h-1.268c-1.25 0-1.64.775-1.64 1.57v1.888h2.79l-.445 2.908h-2.345V22c4.81-.755 8.49-4.917 8.49-9.939Z"
fill=
"currentColor"
/>
</svg>
icons/social/github_filled.svg
0 → 100644
View file @
3d0f35ba
<svg
viewBox=
"0 0 24 24"
fill=
"none"
xmlns=
"http://www.w3.org/2000/svg"
>
<path
fill-rule=
"evenodd"
clip-rule=
"evenodd"
d=
"M12.005 2c-5.525 0-10 4.475-10 10a9.994 9.994 0 0 0 6.837 9.488c.5.087.688-.213.688-.476 0-.237-.013-1.024-.013-1.862-2.512.463-3.162-.612-3.362-1.175-.113-.288-.6-1.175-1.025-1.413-.35-.187-.85-.65-.013-.662.788-.013 1.35.725 1.538 1.025.9 1.512 2.337 1.087 2.912.825.088-.65.35-1.087.638-1.337-2.225-.25-4.55-1.113-4.55-4.938 0-1.088.387-1.987 1.025-2.688-.1-.25-.45-1.275.1-2.65 0 0 .837-.262 2.75 1.026a9.28 9.28 0 0 1 2.5-.338c.85 0 1.7.112 2.5.337 1.912-1.3 2.75-1.024 2.75-1.024.55 1.375.2 2.4.1 2.65.637.7 1.025 1.587 1.025 2.687 0 3.838-2.338 4.688-4.563 4.938.363.312.675.912.675 1.85 0 1.337-.012 2.412-.012 2.75 0 .262.187.574.687.474A10.016 10.016 0 0 0 22.005 12c0-5.525-4.475-10-10-10Z"
fill=
"currentColor"
/>
</svg>
icons/social/linkedin_filled.svg
0 → 100644
View file @
3d0f35ba
<svg
viewBox=
"0 0 24 24"
fill=
"none"
xmlns=
"http://www.w3.org/2000/svg"
>
<path
fill-rule=
"evenodd"
clip-rule=
"evenodd"
d=
"M12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2ZM8.874 17.62V9.81H6.277v7.81h2.597Zm9.36 0v-4.478c0-2.4-1.281-3.515-2.989-3.515-1.377 0-1.994.757-2.34 1.29V9.81H10.31c.034.732 0 7.809 0 7.809h2.596v-4.361c0-.234.016-.467.085-.634.188-.466.615-.95 1.332-.95.939 0 1.315.717 1.315 1.767v4.178h2.596ZM7.593 6.045c-.888 0-1.469.584-1.469 1.35 0 .749.563 1.349 1.435 1.349h.016c.906 0 1.47-.6 1.47-1.35-.018-.765-.564-1.35-1.452-1.35Z"
fill=
"currentColor"
/>
</svg>
icons/social/medium_filled.svg
0 → 100644
View file @
3d0f35ba
<svg
viewBox=
"0 0 24 24"
fill=
"none"
xmlns=
"http://www.w3.org/2000/svg"
>
<path
d=
"M12 2C6.478 2 2 6.477 2 12s4.478 10 10 10c5.523 0 10-4.477 10-10S17.523 2 12 2Zm5.673 6.628h-.455c-.17 0-.409.244-.409.4v5.662c0 .156.24.369.409.369h.455v1.344h-4.127v-1.344h.864V9.108h-.043l-2.017 7.295h-1.562L8.797 9.108h-.05v5.951h.863v1.344H6.155v-1.344h.442c.182 0 .421-.213.421-.37v-5.66c0-.156-.239-.4-.421-.4h-.442V7.284h4.32l1.42 5.28h.038l1.432-5.28h4.308v1.344Z"
fill=
"currentColor"
/>
</svg>
icons/social/opensea_filled.svg
0 → 100644
View file @
3d0f35ba
<svg
viewBox=
"0 0 24 24"
fill=
"none"
xmlns=
"http://www.w3.org/2000/svg"
>
<mask
id=
"opensea_filled_svg__a"
style=
"mask-type:luminance"
maskUnits=
"userSpaceOnUse"
x=
"2"
y=
"2"
width=
"20"
height=
"20"
>
<path
d=
"M22 2H2v20h20V2Z"
fill=
"#fff"
/>
</mask>
<g
mask=
"url(#opensea_filled_svg__a)"
>
<path
fill-rule=
"evenodd"
clip-rule=
"evenodd"
d=
"M12.037 2.035c5.52 0 10 4.48 10 10s-4.48 10-10 10-10-4.48-10-10 4.48-10 10-10Zm2.732 7.245.053.068.075.098c.02.04.06.081.08.142.036.053.068.106.099.16l.026.045c.031.053.063.107.099.16.02.06.06.121.08.182.082.162.143.325.163.507.02.04.02.081.02.101.02.04.02.102.02.162.02.183 0 .345-.02.527-.007.03-.015.058-.023.085l-.015.054a2.655 2.655 0 0 0-.023.084c-.02.061-.04.142-.08.223-.062.142-.143.284-.224.426-.02.04-.06.101-.101.162-.04.061-.081.102-.101.162-.041.061-.102.122-.142.183-.04.06-.081.121-.142.182-.061.081-.142.162-.203.243-.04.041-.081.102-.142.142-.04.04-.08.102-.142.142-.06.061-.121.122-.182.162l-.122.102c-.02.02-.04.02-.06.02h-.893v1.135h1.115c.244 0 .487-.08.67-.243.06-.06.344-.304.688-.669.02-.02.02-.02.041-.02l3.081-.892c.122-.06.162-.02.162.04v.65c0 .04-.02.06-.06.08-.203.081-.913.405-1.197.81-.75 1.035-1.317 2.514-2.574 2.514h-5.29a3.396 3.396 0 0 1-3.385-3.405v-.06c0-.041.04-.082.08-.082h2.98c.061 0 .102.061.102.101-.02.183.02.386.101.568.182.365.547.568.933.568h1.459v-1.135h-1.44a.091.091 0 0 1-.08-.142.28.28 0 0 0 .06-.082c.142-.202.325-.486.527-.83.142-.224.264-.487.365-.73.02-.04.04-.081.061-.142.02-.081.061-.162.081-.223l.061-.183c.04-.202.06-.425.06-.668 0-.082 0-.183-.02-.284 0-.045-.003-.089-.008-.133l-.003-.038a1.319 1.319 0 0 1-.009-.133c0-.081-.02-.183-.04-.264a2.866 2.866 0 0 0-.081-.405l-.02-.04c-.02-.082-.041-.183-.082-.264a7.58 7.58 0 0 0-.283-.811l-.122-.304a7.912 7.912 0 0 0-.182-.406c-.02-.06-.061-.1-.082-.162-.02-.06-.06-.121-.08-.182l-.061-.122-.183-.324c-.02-.04.02-.101.06-.081l1.116.304.142.04.162.041.06.02v-.669c0-.324.264-.588.568-.588.162 0 .304.061.406.163a.566.566 0 0 1 .162.405V7.5l.121.04s.02 0 .02.02c.021.021.061.062.122.102.04.04.081.081.142.122.102.08.243.203.385.324.04.04.081.06.102.101.182.163.385.365.588.588.06.061.1.122.162.183.06.06.101.142.162.202l.075.098Zm-7.88 3.105.041-.06 2.635-4.116c.041-.06.122-.06.163.02.446.994.81 2.21.648 2.98-.08.325-.284.75-.527 1.136a.442.442 0 0 1-.101.162c-.02.02-.04.04-.081.04H6.95c-.061-.02-.102-.101-.061-.162Z"
fill=
"currentColor"
/>
</g>
</svg>
icons/social/reddit_filled.svg
0 → 100644
View file @
3d0f35ba
<svg
viewBox=
"0 0 24 24"
fill=
"none"
xmlns=
"http://www.w3.org/2000/svg"
>
<path
fill-rule=
"evenodd"
clip-rule=
"evenodd"
d=
"M12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2Zm6.667 10c0-.807-.655-1.462-1.462-1.462a1.4 1.4 0 0 0-1.006.41c-.994-.714-2.374-1.182-3.895-1.24l.667-3.123 2.163.456a1.042 1.042 0 0 0 2.082-.047c0-.573-.467-1.04-1.04-1.04-.41 0-.76.233-.925.584l-2.42-.515a.291.291 0 0 0-.2.035.285.285 0 0 0-.116.164l-.737 3.486c-1.556.046-2.948.502-3.953 1.24a1.476 1.476 0 0 0-1.006-.41 1.463 1.463 0 0 0-.597 2.795c-.023.14-.035.293-.035.445 0 2.245 2.608 4.058 5.836 4.058s5.837-1.813 5.837-4.058c0-.152-.012-.293-.035-.433.48-.234.842-.748.842-1.345Zm-4.188 3.79c-.713.713-2.07.76-2.467.76-.398 0-1.766-.059-2.468-.76a.275.275 0 0 1 0-.386.275.275 0 0 1 .386 0c.444.444 1.403.608 2.093.608s1.638-.164 2.094-.609a.275.275 0 0 1 .386 0 .3.3 0 0 1-.024.386Zm-5.812-2.75c0-.572.467-1.04 1.04-1.04.574 0 1.042.468 1.042 1.04 0 .574-.468 1.042-1.041 1.042a1.043 1.043 0 0 1-1.041-1.041Zm5.625 1.042a1.043 1.043 0 0 1-1.04-1.041c0-.573.467-1.041 1.04-1.041.574 0 1.041.468 1.041 1.04 0 .574-.467 1.042-1.04 1.042Z"
fill=
"currentColor"
/>
</svg>
icons/social/slack_filled.svg
0 → 100644
View file @
3d0f35ba
<svg
viewBox=
"0 0 24 24"
fill=
"none"
xmlns=
"http://www.w3.org/2000/svg"
>
<path
fill-rule=
"evenodd"
clip-rule=
"evenodd"
d=
"M12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2Zm1.598 13.51c.7 0 1.272.572 1.272 1.273 0 .7-.572 1.272-1.272 1.272-.7 0-1.273-.572-1.273-1.272V15.51h1.273ZM9.13 13.599c0-.7.572-1.273 1.272-1.273.7 0 1.273.572 1.273 1.273v3.185c0 .7-.572 1.272-1.273 1.272-.7 0-1.272-.572-1.272-1.272v-3.186Zm-.64 0c0 .7-.572 1.272-1.273 1.272-.7 0-1.272-.572-1.272-1.272 0-.7.572-1.273 1.272-1.273H8.49v1.273Zm8.293 1.272c.7 0 1.272-.572 1.272-1.272 0-.7-.572-1.273-1.272-1.273h-3.186c-.7 0-1.272.572-1.272 1.273 0 .7.572 1.272 1.273 1.272h3.185Zm0-3.195c.7 0 1.272-.572 1.272-1.273 0-.7-.572-1.272-1.272-1.272-.7 0-1.273.572-1.273 1.272v1.273h1.273Zm-1.913-1.273c0 .7-.572 1.273-1.272 1.273-.7 0-1.273-.572-1.273-1.273V7.217c0-.7.572-1.272 1.273-1.272.7 0 1.272.572 1.272 1.272v3.186Zm-4.467 1.273c.7 0 1.272-.572 1.272-1.273 0-.7-.572-1.272-1.273-1.272H7.217c-.7 0-1.272.572-1.272 1.272 0 .7.572 1.273 1.272 1.273h3.186Zm1.272-3.186V7.217c0-.7-.572-1.272-1.273-1.272-.7 0-1.272.572-1.272 1.272 0 .7.572 1.272 1.272 1.272h1.273Z"
fill=
"currentColor"
/>
</svg>
icons/social/telegram_filled.svg
0 → 100644
View file @
3d0f35ba
<svg
viewBox=
"0 0 24 24"
fill=
"none"
xmlns=
"http://www.w3.org/2000/svg"
>
<path
fill-rule=
"evenodd"
clip-rule=
"evenodd"
d=
"M22.01 12c0 5.523-4.477 10-10 10s-10-4.477-10-10 4.477-10 10-10 10 4.477 10 10Zm-9.73-3.495a525.959 525.959 0 0 0-6.445 2.776c-.523.208-.797.412-.822.61-.042.337.38.47.953.65l.241.076c.564.184 1.323.398 1.718.407.358.008.757-.14 1.198-.443 3.01-2.031 4.564-3.058 4.661-3.08.069-.016.164-.036.229.022.064.057.058.166.051.195-.041.178-1.694 1.715-2.55 2.51-.267.248-.456.424-.494.464-.087.09-.175.175-.26.257-.524.505-.917.884.021 1.503.452.297.813.543 1.173.789.393.267.786.535 1.293.867.13.085.253.173.374.259.457.326.869.62 1.377.573.295-.027.6-.305.755-1.133.366-1.957 1.086-6.197 1.252-7.944a1.942 1.942 0 0 0-.019-.435.465.465 0 0 0-.157-.3c-.132-.107-.337-.13-.428-.128-.416.007-1.053.23-4.122 1.505Z"
fill=
"currentColor"
/>
</svg>
icons/social/twitter_filled.svg
0 → 100644
View file @
3d0f35ba
<svg
viewBox=
"0 0 24 24"
fill=
"none"
xmlns=
"http://www.w3.org/2000/svg"
>
<path
fill-rule=
"evenodd"
clip-rule=
"evenodd"
d=
"M12.005 22c5.523 0 10-4.477 10-10s-4.477-10-10-10-10 4.477-10 10 4.477 10 10 10Zm5.011-12.322c.483-.35.894-.774 1.234-1.27-.472.202-.944.329-1.416.38.533-.32.893-.772 1.081-1.355a4.823 4.823 0 0 1-1.56.593 2.371 2.371 0 0 0-1.798-.776c-.68 0-1.26.24-1.74.72a2.37 2.37 0 0 0-.72 1.739c0 .182.021.37.062.563a6.855 6.855 0 0 1-2.83-.757 6.971 6.971 0 0 1-2.241-1.816c-.224.38-.335.794-.335 1.24a2.456 2.456 0 0 0 1.096 2.048 2.44 2.44 0 0 1-1.112-.312v.031c0 .594.187 1.115.56 1.564.373.45.844.732 1.412.849a2.542 2.542 0 0 1-.647.084c-.142 0-.297-.013-.464-.038.157.492.446.897.868 1.214a2.4 2.4 0 0 0 1.431.49 4.816 4.816 0 0 1-3.053 1.051c-.218 0-.416-.01-.594-.03a6.83 6.83 0 0 0 3.777 1.104 7.19 7.19 0 0 0 2.459-.415c.766-.277 1.421-.647 1.964-1.112a7.434 7.434 0 0 0 1.405-1.602 7.138 7.138 0 0 0 .88-1.892 6.983 6.983 0 0 0 .282-2.295Z"
fill=
"currentColor"
/>
</svg>
theme/foundations/colors.ts
View file @
3d0f35ba
...
@@ -50,6 +50,12 @@ const colors = {
...
@@ -50,6 +50,12 @@ const colors = {
'
800
'
:
'
RGBA(16, 17, 18, 0.80)
'
,
'
800
'
:
'
RGBA(16, 17, 18, 0.80)
'
,
'
900
'
:
'
RGBA(16, 17, 18, 0.92)
'
,
'
900
'
:
'
RGBA(16, 17, 18, 0.92)
'
,
},
},
github
:
'
#171923
'
,
telegram
:
'
#2775CA
'
,
linkedin
:
'
#1564BA
'
,
discord
:
'
#9747FF
'
,
slack
:
'
#1BA27A
'
,
twitter
:
'
#63B3ED
'
,
};
};
export
default
colors
;
export
default
colors
;
ui/tokenInfo/TokenInfoForm.tsx
View file @
3d0f35ba
...
@@ -21,6 +21,7 @@ import TokenInfoFieldProjectSector from './fields/TokenInfoFieldProjectSector';
...
@@ -21,6 +21,7 @@ import TokenInfoFieldProjectSector from './fields/TokenInfoFieldProjectSector';
import
TokenInfoFieldProjectWebsite
from
'
./fields/TokenInfoFieldProjectWebsite
'
;
import
TokenInfoFieldProjectWebsite
from
'
./fields/TokenInfoFieldProjectWebsite
'
;
import
TokenInfoFieldRequesterEmail
from
'
./fields/TokenInfoFieldRequesterEmail
'
;
import
TokenInfoFieldRequesterEmail
from
'
./fields/TokenInfoFieldRequesterEmail
'
;
import
TokenInfoFieldRequesterName
from
'
./fields/TokenInfoFieldRequesterName
'
;
import
TokenInfoFieldRequesterName
from
'
./fields/TokenInfoFieldRequesterName
'
;
import
TokenInfoFieldSocialLink
from
'
./fields/TokenInfoFieldSocialLink
'
;
import
TokenInfoFieldSupport
from
'
./fields/TokenInfoFieldSupport
'
;
import
TokenInfoFieldSupport
from
'
./fields/TokenInfoFieldSupport
'
;
import
TokenInfoFormSectionHeader
from
'
./TokenInfoFormSectionHeader
'
;
import
TokenInfoFormSectionHeader
from
'
./TokenInfoFormSectionHeader
'
;
...
@@ -84,6 +85,18 @@ const TokenInfoForm = ({ id }: Props) => {
...
@@ -84,6 +85,18 @@ const TokenInfoForm = ({ id }: Props) => {
<
TokenInfoFieldProjectDescription
{
...
fieldProps
}
/>
<
TokenInfoFieldProjectDescription
{
...
fieldProps
}
/>
</
GridItem
>
</
GridItem
>
<
TokenInfoFormSectionHeader
>
Links
</
TokenInfoFormSectionHeader
>
<
TokenInfoFieldSocialLink
{
...
fieldProps
}
name=
"github"
/>
<
TokenInfoFieldSocialLink
{
...
fieldProps
}
name=
"twitter"
/>
<
TokenInfoFieldSocialLink
{
...
fieldProps
}
name=
"telegram"
/>
<
TokenInfoFieldSocialLink
{
...
fieldProps
}
name=
"opensea"
/>
<
TokenInfoFieldSocialLink
{
...
fieldProps
}
name=
"linkedin"
/>
<
TokenInfoFieldSocialLink
{
...
fieldProps
}
name=
"facebook"
/>
<
TokenInfoFieldSocialLink
{
...
fieldProps
}
name=
"discord"
/>
<
TokenInfoFieldSocialLink
{
...
fieldProps
}
name=
"medium"
/>
<
TokenInfoFieldSocialLink
{
...
fieldProps
}
name=
"slack"
/>
<
TokenInfoFieldSocialLink
{
...
fieldProps
}
name=
"reddit"
/>
<
TokenInfoFormSectionHeader
>
Price data
</
TokenInfoFormSectionHeader
>
<
TokenInfoFormSectionHeader
>
Price data
</
TokenInfoFormSectionHeader
>
<
TokenInfoFieldPriceTicker
{
...
fieldProps
}
name=
"ticker_coin_market_cap"
label=
"CoinMarketCap URL"
/>
<
TokenInfoFieldPriceTicker
{
...
fieldProps
}
name=
"ticker_coin_market_cap"
label=
"CoinMarketCap URL"
/>
<
TokenInfoFieldPriceTicker
{
...
fieldProps
}
name=
"ticker_coin_gecko"
label=
"CoinGecko URL"
/>
<
TokenInfoFieldPriceTicker
{
...
fieldProps
}
name=
"ticker_coin_gecko"
label=
"CoinGecko URL"
/>
...
...
ui/tokenInfo/fields/TokenInfoFieldPriceTicker.tsx
View file @
3d0f35ba
...
@@ -3,7 +3,7 @@ import React from 'react';
...
@@ -3,7 +3,7 @@ import React from 'react';
import
type
{
Control
,
ControllerRenderProps
,
FormState
}
from
'
react-hook-form
'
;
import
type
{
Control
,
ControllerRenderProps
,
FormState
}
from
'
react-hook-form
'
;
import
{
Controller
}
from
'
react-hook-form
'
;
import
{
Controller
}
from
'
react-hook-form
'
;
import
type
{
Fields
}
from
'
../types
'
;
import
type
{
Fields
,
TickerUrlFields
}
from
'
../types
'
;
import
{
validator
}
from
'
lib/validations/url
'
;
import
{
validator
}
from
'
lib/validations/url
'
;
import
InputPlaceholder
from
'
ui/shared/InputPlaceholder
'
;
import
InputPlaceholder
from
'
ui/shared/InputPlaceholder
'
;
...
@@ -12,7 +12,7 @@ interface Props {
...
@@ -12,7 +12,7 @@ interface Props {
formState
:
FormState
<
Fields
>
;
formState
:
FormState
<
Fields
>
;
control
:
Control
<
Fields
>
;
control
:
Control
<
Fields
>
;
isReadOnly
?:
boolean
;
isReadOnly
?:
boolean
;
name
:
'
ticker_coin_gecko
'
|
'
ticker_coin_market_cap
'
|
'
ticker_defi_llama
'
;
name
:
keyof
TickerUrlFields
;
label
:
string
;
label
:
string
;
}
}
...
...
ui/tokenInfo/fields/TokenInfoFieldSocialLink.tsx
0 → 100644
View file @
3d0f35ba
import
{
FormControl
,
Icon
,
Input
,
InputRightElement
,
InputGroup
}
from
'
@chakra-ui/react
'
;
import
React
from
'
react
'
;
import
type
{
Control
,
ControllerRenderProps
,
FormState
}
from
'
react-hook-form
'
;
import
{
Controller
}
from
'
react-hook-form
'
;
import
type
{
Fields
,
SocialLinkFields
}
from
'
../types
'
;
import
iconDiscord
from
'
icons/social/discord_filled.svg
'
;
import
iconFacebook
from
'
icons/social/facebook_filled.svg
'
;
import
iconGithub
from
'
icons/social/github_filled.svg
'
;
import
iconLinkedIn
from
'
icons/social/linkedin_filled.svg
'
;
import
iconMedium
from
'
icons/social/medium_filled.svg
'
;
import
iconOpenSea
from
'
icons/social/opensea_filled.svg
'
;
import
iconReddit
from
'
icons/social/reddit_filled.svg
'
;
import
iconSlack
from
'
icons/social/slack_filled.svg
'
;
import
iconTelegram
from
'
icons/social/telegram_filled.svg
'
;
import
iconTwitter
from
'
icons/social/twitter_filled.svg
'
;
import
{
validator
}
from
'
lib/validations/url
'
;
import
InputPlaceholder
from
'
ui/shared/InputPlaceholder
'
;
interface
Item
{
icon
:
React
.
FunctionComponent
<
React
.
SVGAttributes
<
SVGElement
>>
;
label
:
string
;
color
:
string
;
}
const
SETTINGS
:
Record
<
keyof
SocialLinkFields
,
Item
>
=
{
github
:
{
label
:
'
GitHub
'
,
icon
:
iconGithub
,
color
:
'
inherit
'
},
telegram
:
{
label
:
'
Telegram
'
,
icon
:
iconTelegram
,
color
:
'
telegram
'
},
linkedin
:
{
label
:
'
LinkedIn
'
,
icon
:
iconLinkedIn
,
color
:
'
linkedin
'
},
discord
:
{
label
:
'
Discord
'
,
icon
:
iconDiscord
,
color
:
'
discord
'
},
slack
:
{
label
:
'
Slack
'
,
icon
:
iconSlack
,
color
:
'
slack
'
},
twitter
:
{
label
:
'
Twitter
'
,
icon
:
iconTwitter
,
color
:
'
twitter
'
},
opensea
:
{
label
:
'
OpenSea
'
,
icon
:
iconOpenSea
,
color
:
'
orange
'
},
facebook
:
{
label
:
'
Facebook
'
,
icon
:
iconFacebook
,
color
:
'
orange
'
},
medium
:
{
label
:
'
Medium
'
,
icon
:
iconMedium
,
color
:
'
orange
'
},
reddit
:
{
label
:
'
Reddit
'
,
icon
:
iconReddit
,
color
:
'
orange
'
},
};
interface
Props
{
formState
:
FormState
<
Fields
>
;
control
:
Control
<
Fields
>
;
isReadOnly
?:
boolean
;
name
:
keyof
SocialLinkFields
;
}
const
TokenInfoFieldSocialLink
=
({
formState
,
control
,
isReadOnly
,
name
}:
Props
)
=>
{
const
renderControl
=
React
.
useCallback
(({
field
}:
{
field
:
ControllerRenderProps
<
Fields
,
typeof
name
>
})
=>
{
const
error
=
name
in
formState
.
errors
?
formState
.
errors
[
name
]
:
undefined
;
return
(
<
FormControl
variant=
"floating"
id=
{
field
.
name
}
size=
"lg"
sx=
{
{
'
.chakra-input__group input
'
:
{
pr
:
'
60px
'
}
}
}
>
<
InputGroup
>
<
Input
{
...
field
}
isInvalid=
{
Boolean
(
error
)
}
isDisabled=
{
formState
.
isSubmitting
||
isReadOnly
}
autoComplete=
"off"
/>
<
InputPlaceholder
text=
{
SETTINGS
[
name
].
label
}
error=
{
error
}
/>
<
InputRightElement
h=
"100%"
>
<
Icon
as=
{
SETTINGS
[
name
].
icon
}
boxSize=
{
6
}
color=
{
field
.
value
?
SETTINGS
[
name
].
color
:
'
#718096
'
}
/>
</
InputRightElement
>
</
InputGroup
>
</
FormControl
>
);
},
[
formState
.
errors
,
formState
.
isSubmitting
,
isReadOnly
,
name
]);
return
(
<
Controller
name=
{
name
}
control=
{
control
}
render=
{
renderControl
}
rules=
{
{
validate
:
validator
}
}
/>
);
};
export
default
React
.
memo
(
TokenInfoFieldSocialLink
);
ui/tokenInfo/types.ts
View file @
3d0f35ba
import
type
{
Option
}
from
'
ui/shared/FancySelect/types
'
;
import
type
{
Option
}
from
'
ui/shared/FancySelect/types
'
;
export
interface
Fields
{
export
interface
Fields
extends
SocialLinkFields
,
TickerUrlFields
{
address
:
string
;
address
:
string
;
requester_name
:
string
;
requester_name
:
string
;
requester_email
:
string
;
requester_email
:
string
;
...
@@ -12,7 +12,23 @@ export interface Fields {
...
@@ -12,7 +12,23 @@ export interface Fields {
docs
?:
string
;
docs
?:
string
;
support
?:
string
;
support
?:
string
;
icon_url
:
string
;
icon_url
:
string
;
}
export
interface
TickerUrlFields
{
ticker_coin_gecko
?:
string
;
ticker_coin_gecko
?:
string
;
ticker_coin_market_cap
?:
string
;
ticker_coin_market_cap
?:
string
;
ticker_defi_llama
?:
string
;
ticker_defi_llama
?:
string
;
}
}
export
interface
SocialLinkFields
{
github
?:
string
;
telegram
?:
string
;
linkedin
?:
string
;
discord
?:
string
;
slack
?:
string
;
twitter
?:
string
;
opensea
?:
string
;
facebook
?:
string
;
medium
?:
string
;
reddit
?:
string
;
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment