index.tsx 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. import React from "react";
  2. import Head from "next/head";
  3. import Link from "next/link";
  4. import { useRouter } from "next/router";
  5. import { TwitterTweetEmbed } from "react-twitter-embed";
  6. import { FaGithub, FaLinkedin, FaTwitter } from "react-icons/fa";
  7. import {
  8. HiCursorClick,
  9. HiLightningBolt,
  10. HiOutlineDownload,
  11. HiOutlineSearchCircle,
  12. } from "react-icons/hi";
  13. import { Producthunt } from "src/components/Producthunt";
  14. import { CarbonAds } from "src/components/CarbonAds";
  15. import pkg from "../../../package.json";
  16. import * as Styles from "./styles";
  17. const Home: React.FC = () => {
  18. const { push } = useRouter();
  19. const [isMobile, setIsMobile] = React.useState(false);
  20. React.useEffect(() => {
  21. setIsMobile(window.screen.width <= 768);
  22. }, []);
  23. return (
  24. <Styles.StyledHome>
  25. <Head>
  26. <title>JSON Visio - Directly onto graphs</title>
  27. </Head>
  28. <Styles.StyledNavbar>
  29. <Styles.StyledNavLink href="/editor">Editor</Styles.StyledNavLink>
  30. <Link href="#features" passHref>
  31. <Styles.StyledNavLink>Features</Styles.StyledNavLink>
  32. </Link>
  33. <Link href="#sponsor" passHref>
  34. <Styles.StyledNavLink>Sponsor</Styles.StyledNavLink>
  35. </Link>
  36. <Styles.StyledNavLink
  37. href="https://github.com/AykutSarac/jsonvisio.com"
  38. target="_blank"
  39. rel="external"
  40. >
  41. GitHub
  42. </Styles.StyledNavLink>
  43. </Styles.StyledNavbar>
  44. <Styles.StyledHeroSection id="main">
  45. <Styles.StyledTitle>
  46. <Styles.StyledGradientText>JSON</Styles.StyledGradientText> Visio
  47. </Styles.StyledTitle>
  48. <Styles.StyledSubTitle>
  49. Seamlessly visualize your JSON data{" "}
  50. <Styles.StyledHighlightedText>instantly</Styles.StyledHighlightedText>{" "}
  51. into graphs.
  52. </Styles.StyledSubTitle>
  53. <Styles.StyledMinorTitle>
  54. Paste - Import - Fetch!
  55. </Styles.StyledMinorTitle>
  56. <Styles.StyledButton
  57. onClick={() => window.location.replace("/editor")}
  58. disabled={isMobile}
  59. >
  60. {isMobile ? "Incompatible Device" : "GO TO EDITOR"}
  61. </Styles.StyledButton>
  62. </Styles.StyledHeroSection>
  63. <Styles.StyledPreviewSection>
  64. <Styles.StyledImage
  65. width="1200"
  66. height="auto"
  67. src="/jsonvisio-screenshot.png"
  68. alt="preview"
  69. />
  70. </Styles.StyledPreviewSection>
  71. <Styles.StyledFeaturesSection id="features">
  72. <Styles.StyledSectionCard>
  73. <Styles.StyledCardIcon>
  74. <HiCursorClick size={50} color="#3BA55D" />
  75. </Styles.StyledCardIcon>
  76. <Styles.StyledCardTitle>EASY-TO-USE</Styles.StyledCardTitle>
  77. <Styles.StyledCardDescription>
  78. Don&apos;t even bother to update your schema to view your JSON into
  79. graphs; directly paste, import or fetch! JSON Visio helps you to
  80. visualize without any additional values and save your time.
  81. </Styles.StyledCardDescription>
  82. </Styles.StyledSectionCard>
  83. <Styles.StyledSectionCard>
  84. <Styles.StyledCardIcon>
  85. <HiOutlineSearchCircle size={50} color="#5865F2" />
  86. </Styles.StyledCardIcon>
  87. <Styles.StyledCardTitle>SEARCH</Styles.StyledCardTitle>
  88. <Styles.StyledCardDescription>
  89. Have a huge file of values, keys or arrays? Worry no more, type in
  90. the keyword you are looking for into search input and it will take
  91. you to each node with matching result highlighting the line to
  92. understand better!
  93. </Styles.StyledCardDescription>
  94. </Styles.StyledSectionCard>
  95. <Styles.StyledSectionCard>
  96. <Styles.StyledCardIcon>
  97. <HiOutlineDownload size={50} color="#DA2877" />
  98. </Styles.StyledCardIcon>
  99. <Styles.StyledCardTitle>DOWNLOAD</Styles.StyledCardTitle>
  100. <Styles.StyledCardDescription>
  101. Download the graph to your local machine and use it wherever you
  102. want, to your blogs, website or make it a poster and paste to the
  103. wall. Who wouldn&apos;t want to see a JSON Visio graph onto their
  104. wall, eh?
  105. </Styles.StyledCardDescription>
  106. </Styles.StyledSectionCard>
  107. <Styles.StyledSectionCard>
  108. <Styles.StyledCardIcon>
  109. <HiLightningBolt size={50} color="#F5E027" />
  110. </Styles.StyledCardIcon>
  111. <Styles.StyledCardTitle>LIVE</Styles.StyledCardTitle>
  112. <Styles.StyledCardDescription>
  113. With Microsoft&apos;s Monaco Editor which is also used by VS Code,
  114. easily edit your JSON and directly view through the graphs. Also
  115. there&apos;s a JSON validator above of it to make sure there is no
  116. type error.
  117. </Styles.StyledCardDescription>
  118. </Styles.StyledSectionCard>
  119. </Styles.StyledFeaturesSection>
  120. <Styles.StyledGitHubSection id="github">
  121. <TwitterTweetEmbed
  122. tweetId="1519363257794015233"
  123. options={{
  124. width: "600",
  125. align: "center",
  126. }}
  127. />
  128. <Styles.StyledSectionArea>
  129. <Styles.StyledSubTitle>Open Source Community</Styles.StyledSubTitle>
  130. <Styles.StyledMinorTitle>
  131. Join the Open Source Community by suggesting new ideas, support by
  132. contributing; implementing new features, fixing bugs and doing
  133. changes minor to major!
  134. </Styles.StyledMinorTitle>
  135. <Styles.StyledButton
  136. onClick={() => push("https://github.com/AykutSarac/jsonvisio.com")}
  137. status="SECONDARY"
  138. >
  139. STAR ON GITHUB
  140. </Styles.StyledButton>
  141. </Styles.StyledSectionArea>
  142. </Styles.StyledGitHubSection>
  143. <Styles.StyledPaidSection>
  144. <Styles.StyledProducthunt>
  145. <Styles.StyledSubTitle>
  146. Support JSON Visio at
  147. <br />
  148. <Styles.StyledHighlightedText>
  149. Product Hunt
  150. </Styles.StyledHighlightedText>
  151. </Styles.StyledSubTitle>
  152. <Producthunt />
  153. </Styles.StyledProducthunt>
  154. <Styles.StyledAffiliate>
  155. <Styles.StyledSubTitle>Affiliate</Styles.StyledSubTitle>
  156. <CarbonAds />
  157. </Styles.StyledAffiliate>
  158. </Styles.StyledPaidSection>
  159. <Styles.StyledSponsorSection id="sponsor">
  160. <Styles.StyledSubTitle>Sponsors</Styles.StyledSubTitle>
  161. <Styles.StyledMinorTitle>
  162. Your supports make JSON Visio possible to continue and accessible for
  163. everyone!
  164. </Styles.StyledMinorTitle>
  165. <Styles.StyledButton
  166. status="SUCCESS"
  167. onClick={() => push("https://www.patreon.com/aykutsarac")}
  168. >
  169. Become A Sponsor!
  170. </Styles.StyledButton>
  171. </Styles.StyledSponsorSection>
  172. <Styles.StyledFooter>
  173. <Styles.StyledFooterText>
  174. © 2022 JSON Visio - {pkg.version}
  175. </Styles.StyledFooterText>
  176. <Styles.StyledIconLinks>
  177. <Styles.StyledNavLink
  178. href="https://github.com/AykutSarac/jsonvisio.com"
  179. target="_blank"
  180. aria-label="github"
  181. >
  182. <FaGithub size={26} />
  183. </Styles.StyledNavLink>
  184. <Styles.StyledNavLink
  185. href="https://www.linkedin.com/in/aykutsarac/"
  186. target="_blank"
  187. aria-label="linkedin"
  188. >
  189. <FaLinkedin size={26} />
  190. </Styles.StyledNavLink>
  191. <Styles.StyledNavLink
  192. href="https://twitter.com/aykutsarach"
  193. target="_blank"
  194. aria-label="twitter"
  195. >
  196. <FaTwitter size={26} />
  197. </Styles.StyledNavLink>
  198. </Styles.StyledIconLinks>
  199. </Styles.StyledFooter>
  200. </Styles.StyledHome>
  201. );
  202. };
  203. export default Home;