- )
+ )
}
export default VerifyCandyMachine
diff --git a/styles/Home.module.css b/styles/Home.module.css
index 32a57d5..316b30d 100644
--- a/styles/Home.module.css
+++ b/styles/Home.module.css
@@ -1,116 +1,116 @@
.container {
- padding: 0 2rem;
+ padding: 0 2rem;
}
.main {
- min-height: 100vh;
- padding: 4rem 0;
- flex: 1;
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
+ min-height: 100vh;
+ padding: 4rem 0;
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
}
.footer {
- display: flex;
- flex: 1;
- padding: 2rem 0;
- border-top: 1px solid #eaeaea;
- justify-content: center;
- align-items: center;
+ display: flex;
+ flex: 1;
+ padding: 2rem 0;
+ border-top: 1px solid #eaeaea;
+ justify-content: center;
+ align-items: center;
}
.footer a {
- display: flex;
- justify-content: center;
- align-items: center;
- flex-grow: 1;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ flex-grow: 1;
}
.title a {
- color: #0070f3;
- text-decoration: none;
+ color: #0070f3;
+ text-decoration: none;
}
.title a:hover,
.title a:focus,
.title a:active {
- text-decoration: underline;
+ text-decoration: underline;
}
.title {
- margin: 0;
- line-height: 1.15;
- font-size: 4rem;
+ margin: 0;
+ line-height: 1.15;
+ font-size: 4rem;
}
.title,
.description {
- text-align: center;
+ text-align: center;
}
.description {
- margin: 4rem 0;
- line-height: 1.5;
- font-size: 1.5rem;
+ margin: 4rem 0;
+ line-height: 1.5;
+ font-size: 1.5rem;
}
.code {
- background: #fafafa;
- border-radius: 5px;
- padding: 0.75rem;
- font-size: 1.1rem;
- font-family: Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono,
- Bitstream Vera Sans Mono, Courier New, monospace;
+ background: #fafafa;
+ border-radius: 5px;
+ padding: 0.75rem;
+ font-size: 1.1rem;
+ font-family: Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New,
+ monospace;
}
.grid {
- display: flex;
- align-items: center;
- justify-content: center;
- flex-wrap: wrap;
- max-width: 800px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex-wrap: wrap;
+ max-width: 800px;
}
.card {
- margin: 1rem;
- padding: 1.5rem;
- text-align: left;
- color: inherit;
- text-decoration: none;
- border: 1px solid #eaeaea;
- border-radius: 10px;
- transition: color 0.15s ease, border-color 0.15s ease;
- max-width: 300px;
+ margin: 1rem;
+ padding: 1.5rem;
+ text-align: left;
+ color: inherit;
+ text-decoration: none;
+ border: 1px solid #eaeaea;
+ border-radius: 10px;
+ transition: color 0.15s ease, border-color 0.15s ease;
+ max-width: 300px;
}
.card:hover,
.card:focus,
.card:active {
- color: #0070f3;
- border-color: #0070f3;
+ color: #0070f3;
+ border-color: #0070f3;
}
.card h2 {
- margin: 0 0 1rem 0;
- font-size: 1.5rem;
+ margin: 0 0 1rem 0;
+ font-size: 1.5rem;
}
.card p {
- margin: 0;
- font-size: 1.25rem;
- line-height: 1.5;
+ margin: 0;
+ font-size: 1.25rem;
+ line-height: 1.5;
}
.logo {
- height: 1em;
- margin-left: 0.5rem;
+ height: 1em;
+ margin-left: 0.5rem;
}
@media (max-width: 600px) {
- .grid {
- width: 100%;
- flex-direction: column;
- }
+ .grid {
+ width: 100%;
+ flex-direction: column;
+ }
}
diff --git a/styles/Modal.module.css b/styles/Modal.module.css
index 5d2913f..986c1f3 100644
--- a/styles/Modal.module.css
+++ b/styles/Modal.module.css
@@ -1,75 +1,75 @@
.modal {
- animation: fade-in 300ms ease-in-out forwards;
+ animation: fade-in 300ms ease-in-out forwards;
}
.hamb {
- position: absolute;
- top: 1rem;
- right: 1rem;
- opacity: 0;
+ position: absolute;
+ top: 1rem;
+ right: 1rem;
+ opacity: 0;
- animation: slide-right 300ms ease-in-out forwards;
- animation-delay: 200ms;
- animation-iteration-count: 1;
+ animation: slide-right 300ms ease-in-out forwards;
+ animation-delay: 200ms;
+ animation-iteration-count: 1;
}
.line {
- transition: transform 300ms ease-in-out;
+ transition: transform 300ms ease-in-out;
}
.line:nth-child(1) {
- background-color: hsl(0, 0%, 0%);
- display: block;
- width: 40px;
- height: 3px;
- transform: rotate(45deg) translateY(10px) translateX(-4px);
+ background-color: hsl(0, 0%, 0%);
+ display: block;
+ width: 40px;
+ height: 3px;
+ transform: rotate(45deg) translateY(10px) translateX(-4px);
- margin-block: 10px;
+ margin-block: 10px;
}
.line:nth-child(2) {
- background-color: hsl(0, 0%, 0%);
- display: block;
- width: 40px;
- height: 3px;
- margin-block: 10px;
- transform: rotate(-45deg) translateY(-13px);
+ background-color: hsl(0, 0%, 0%);
+ display: block;
+ width: 40px;
+ height: 3px;
+ margin-block: 10px;
+ transform: rotate(-45deg) translateY(-13px);
}
.hamb:hover .line:nth-child(2) {
- transform: rotate(0deg) translateY(-13px) translateX(-10px) scaleX(0.8);
+ transform: rotate(0deg) translateY(-13px) translateX(-10px) scaleX(0.8);
}
.hamb:hover .line:nth-child(1) {
- transform: rotate(0deg) translateY(-0px) translateX(-10px) scaleX(0.8);
+ transform: rotate(0deg) translateY(-0px) translateX(-10px) scaleX(0.8);
}
.text {
- animation: slide-left 300ms ease-in-out;
- animation-delay: 100ms;
+ animation: slide-left 300ms ease-in-out;
+ animation-delay: 100ms;
}
@keyframes slide-left {
- from {
- transform: translateX(-50%);
- }
- to {
- transform: translateX(0%);
- opacity: 1;
- }
+ from {
+ transform: translateX(-50%);
+ }
+ to {
+ transform: translateX(0%);
+ opacity: 1;
+ }
}
@keyframes fade-in {
- from {
- transform: scale(0);
- }
- to {
- transform: scale(1);
- }
+ from {
+ transform: scale(0);
+ }
+ to {
+ transform: scale(1);
+ }
}
@keyframes slide-right {
- from {
- transform: translateX(50%);
- opacity: 0;
- }
- to {
- transform: translateX(0%);
- opacity: 1;
- }
+ from {
+ transform: translateX(50%);
+ opacity: 0;
+ }
+ to {
+ transform: translateX(0%);
+ opacity: 1;
+ }
}
diff --git a/styles/globals.css b/styles/globals.css
index c64ba3d..cf7c96a 100644
--- a/styles/globals.css
+++ b/styles/globals.css
@@ -6,37 +6,37 @@
html,
body {
- padding: 0;
- margin: 0;
- font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen,
- Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
+ padding: 0;
+ margin: 0;
+ font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans,
+ Helvetica Neue, sans-serif;
}
a {
- color: inherit;
- text-decoration: none;
+ color: inherit;
+ text-decoration: none;
}
* {
- box-sizing: border-box;
+ box-sizing: border-box;
}
.container {
- padding:5rem 2rem 0 2rem;
+ padding: 5rem 2rem 0 2rem;
}
-.create-form{
- min-width: 380px;
+.create-form {
+ min-width: 380px;
}
@media screen and (min-width: 600px) {
- .create-form {
- min-width: 500px;
- }
+ .create-form {
+ min-width: 500px;
+ }
}
@media screen and (min-width: 1024px) {
- .create-form {
- min-width: 700px;
- }
+ .create-form {
+ min-width: 700px;
+ }
}
.wallet-adapter-button {
@@ -287,7 +287,7 @@ a {
.wallet-adapter-modal-list .wallet-adapter-button span {
margin-left: auto;
font-size: 14px;
- opacity: .6;
+ opacity: 0.6;
}
.wallet-adapter-modal-list-more {
From 5b6c35b4173053c68b9d1c028eeba2314e61b259 Mon Sep 17 00:00:00 2001
From: Agustin Tena
Date: Wed, 22 Jun 2022 12:42:44 +0200
Subject: [PATCH 17/80] feat: add logo (#57)
* add logo image to readme
---
README.md | 12 ++++++++++--
doc/img/boxfish-logo-small.png | Bin 0 -> 8001 bytes
2 files changed, 10 insertions(+), 2 deletions(-)
create mode 100644 doc/img/boxfish-logo-small.png
diff --git a/README.md b/README.md
index 397dfb1..0e8d74b 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,15 @@
+
+
+
+
+
- CANDY MACHINE DASHBOARD
+ Sugar Rush
-from Boxfish.Studio
+A Solana Candymachine managing dashboard
+
+By Boxfish Studio
+
About ◈
diff --git a/doc/img/boxfish-logo-small.png b/doc/img/boxfish-logo-small.png
new file mode 100644
index 0000000000000000000000000000000000000000..cad9c1fcb143602158699c6b8a9fa58b75bb2622
GIT binary patch
literal 8001
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
Date: Wed, 22 Jun 2022 12:51:30 +0200
Subject: [PATCH 18/80] feat: add LICENSE and NOTICE files (#58)
---
LICENSE | 201 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
NOTICE | 1 +
2 files changed, 202 insertions(+)
create mode 100644 LICENSE
create mode 100644 NOTICE
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..261eeb9
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,201 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/NOTICE b/NOTICE
new file mode 100644
index 0000000..afc5704
--- /dev/null
+++ b/NOTICE
@@ -0,0 +1 @@
+Copyright 2022 Boxfish Studio SL
From 7186727ce0b792a2f46b8d3bfd43b2ef1c9b1522 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bego=C3=B1a=20=C3=81lvarez=20de=20la=20Cruz?=
Date: Wed, 22 Jun 2022 12:53:34 +0200
Subject: [PATCH 19/80] refactor: refactor components file structure (#43)
* chore: refactor components file structure
* feat: improve navbar code
* chore: format code
* feat: improve responsive navbar a tiny bit
---
components/CreateCM/utils.ts | 17 ----
components/Layout/Navbar.tsx | 38 ---------
.../{FetchCM => cards}/CandyMachineCard.tsx | 7 +-
components/cards/index.ts | 1 +
.../UpdateCreateCandyMachineForm.tsx} | 22 +++---
components/forms/index.ts | 1 +
components/index.ts | 3 +
.../{Layout => layout}/ActionButton.tsx | 0
.../CheckConnectedWallet.tsx | 2 +-
components/{Layout => layout}/Modal.tsx | 2 +-
components/layout/Navbar.tsx | 77 +++++++++++++++++++
components/{Layout => layout}/Spinner.tsx | 0
components/{Layout => layout}/Title.tsx | 0
components/{Layout => layout}/Wallet.tsx | 0
components/{Layout => layout}/index.ts | 0
pages/[id].tsx | 23 +++---
pages/_app.tsx | 12 +--
pages/create-candy-machine.tsx | 7 +-
pages/index.tsx | 9 +--
pages/verify-candy-machine/[id].tsx | 8 +-
20 files changed, 128 insertions(+), 101 deletions(-)
delete mode 100644 components/CreateCM/utils.ts
delete mode 100644 components/Layout/Navbar.tsx
rename components/{FetchCM => cards}/CandyMachineCard.tsx (96%)
create mode 100644 components/cards/index.ts
rename components/{CreateCM/Form.tsx => forms/UpdateCreateCandyMachineForm.tsx} (97%)
create mode 100644 components/forms/index.ts
create mode 100644 components/index.ts
rename components/{Layout => layout}/ActionButton.tsx (100%)
rename components/{Layout => layout}/CheckConnectedWallet.tsx (90%)
rename components/{Layout => layout}/Modal.tsx (99%)
create mode 100644 components/layout/Navbar.tsx
rename components/{Layout => layout}/Spinner.tsx (100%)
rename components/{Layout => layout}/Title.tsx (100%)
rename components/{Layout => layout}/Wallet.tsx (100%)
rename components/{Layout => layout}/index.ts (100%)
diff --git a/components/CreateCM/utils.ts b/components/CreateCM/utils.ts
deleted file mode 100644
index ecada18..0000000
--- a/components/CreateCM/utils.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-/**
- *
- * @param dateTime date to parse
- * @param time time to parse
- * @returns {string} time parsed to UCT
- */
-export function parseDateToUTC(dateTime: string, time: string): string {
- let UTCDate: string[] | string = new Date(dateTime).toDateString().slice(4).split(' ')
- const _temp = UTCDate[0]
- UTCDate[0] = UTCDate[1]
- UTCDate[1] = _temp
- UTCDate = UTCDate.join('.').replaceAll('.', ' ')
-
- const UTCTime = `${time}:00 GMT`
-
- return `${UTCDate} ${UTCTime}`
-}
diff --git a/components/Layout/Navbar.tsx b/components/Layout/Navbar.tsx
deleted file mode 100644
index 9ed5a72..0000000
--- a/components/Layout/Navbar.tsx
+++ /dev/null
@@ -1,38 +0,0 @@
-import { FC } from 'react'
-import { useWallet } from '@solana/wallet-adapter-react'
-import Link from 'next/link'
-
-const Navbar: FC = () => {
- const { publicKey } = useWallet()
-
- return (
-
-
-
-
- )
-}
-
-const SideBarElement = ({ text, tooltip, href }: { text: string; tooltip: string; href: string }) => (
-
-
- {text}
-
- {tooltip}
-
-
-
-)
-
-export default Navbar
diff --git a/components/FetchCM/CandyMachineCard.tsx b/components/cards/CandyMachineCard.tsx
similarity index 96%
rename from components/FetchCM/CandyMachineCard.tsx
rename to components/cards/CandyMachineCard.tsx
index f2a0f35..7e6e1f9 100644
--- a/components/FetchCM/CandyMachineCard.tsx
+++ b/components/cards/CandyMachineCard.tsx
@@ -1,8 +1,7 @@
-import { FC, useState } from 'react'
+import { Modal } from 'components'
+import { useRemoveCandyMachineAccount, useSearchBar } from 'hooks'
import Link from 'next/link'
-import { useSearchBar, useRemoveCandyMachineAccount } from 'hooks'
-
-import { Modal } from 'components/Layout'
+import { FC, useState } from 'react'
const CandyMachineCard: FC<{
accounts: string[]
diff --git a/components/cards/index.ts b/components/cards/index.ts
new file mode 100644
index 0000000..b51b7cb
--- /dev/null
+++ b/components/cards/index.ts
@@ -0,0 +1 @@
+export { default as CandyMachineCard } from './CandyMachineCard'
diff --git a/components/CreateCM/Form.tsx b/components/forms/UpdateCreateCandyMachineForm.tsx
similarity index 97%
rename from components/CreateCM/Form.tsx
rename to components/forms/UpdateCreateCandyMachineForm.tsx
index 0337ea5..2a95971 100644
--- a/components/CreateCM/Form.tsx
+++ b/components/forms/UpdateCreateCandyMachineForm.tsx
@@ -1,17 +1,17 @@
-import React, { FC, useState } from 'react'
-import { useWallet, useAnchorWallet } from '@solana/wallet-adapter-react'
-import { useForm, useUploadFiles, useRPC, useUploadCache } from 'hooks'
-import { getCandyMachineV2Config, verifyAssets, loadCandyProgramV2 } from 'lib/upload/config'
-import { CandyMachineConfig, Gatekeeper, FetchedCandyMachineConfig } from 'lib/interfaces'
-import { StorageType } from 'lib/enums'
-import { parseDateToUTC, parseDateFromDateBN, parseTimeFromDateBN, getCurrentDate, getCurrentTime } from 'lib/utils'
-import { uploadV2 } from 'lib/upload/upload'
import { AnchorProvider, BN } from '@project-serum/anchor'
+import { useAnchorWallet, useWallet } from '@solana/wallet-adapter-react'
import { LAMPORTS_PER_SOL, PublicKey } from '@solana/web3.js'
+import { ActionButton, CheckConnectedWallet } from 'components'
+import { useForm, useRPC, useUploadCache, useUploadFiles } from 'hooks'
+import { StorageType } from 'lib/enums'
+import { CandyMachineConfig, FetchedCandyMachineConfig, Gatekeeper } from 'lib/interfaces'
import { updateV2 } from 'lib/update/update'
-import { ActionButton, CheckConnectedWallet } from 'components/Layout'
+import { getCandyMachineV2Config, loadCandyProgramV2, verifyAssets } from 'lib/upload/config'
+import { uploadV2 } from 'lib/upload/upload'
+import { getCurrentDate, getCurrentTime, parseDateFromDateBN, parseDateToUTC, parseTimeFromDateBN } from 'lib/utils'
+import React, { FC, useState } from 'react'
-const Form: FC<{
+const UpdateCreateCandyMachineForm: FC<{
fetchedValues?: FetchedCandyMachineConfig
updateCandyMachine?: boolean
candyMachinePubkey?: string | string[]
@@ -488,4 +488,4 @@ const FormInput: FC = ({ id, text, type, defaultValue, defaultChecked, va
)
}
-export default Form
+export default UpdateCreateCandyMachineForm
diff --git a/components/forms/index.ts b/components/forms/index.ts
new file mode 100644
index 0000000..2c6180c
--- /dev/null
+++ b/components/forms/index.ts
@@ -0,0 +1 @@
+export { default as UpdateCreateCandyMachineForm } from './UpdateCreateCandyMachineForm'
diff --git a/components/index.ts b/components/index.ts
new file mode 100644
index 0000000..2ea41bb
--- /dev/null
+++ b/components/index.ts
@@ -0,0 +1,3 @@
+export * from './cards'
+export * from './forms'
+export * from './layout'
diff --git a/components/Layout/ActionButton.tsx b/components/layout/ActionButton.tsx
similarity index 100%
rename from components/Layout/ActionButton.tsx
rename to components/layout/ActionButton.tsx
diff --git a/components/Layout/CheckConnectedWallet.tsx b/components/layout/CheckConnectedWallet.tsx
similarity index 90%
rename from components/Layout/CheckConnectedWallet.tsx
rename to components/layout/CheckConnectedWallet.tsx
index 3890038..b6afeae 100644
--- a/components/Layout/CheckConnectedWallet.tsx
+++ b/components/layout/CheckConnectedWallet.tsx
@@ -1,5 +1,5 @@
+import { Title } from 'components'
import { FC } from 'react'
-import { Title } from 'components/Layout'
const CheckConnectedWallet: FC = () => {
return (
diff --git a/components/Layout/Modal.tsx b/components/layout/Modal.tsx
similarity index 99%
rename from components/Layout/Modal.tsx
rename to components/layout/Modal.tsx
index 8a8e0a4..376117d 100644
--- a/components/Layout/Modal.tsx
+++ b/components/layout/Modal.tsx
@@ -1,7 +1,7 @@
import { useConnection } from '@solana/wallet-adapter-react'
+import { ActionButton } from 'components'
import { Dispatch, FC, SetStateAction, useState } from 'react'
import styles from 'styles/Modal.module.css'
-import { ActionButton } from 'components/Layout'
const Modal: FC<{
isOpen: boolean
diff --git a/components/layout/Navbar.tsx b/components/layout/Navbar.tsx
new file mode 100644
index 0000000..bdf73ae
--- /dev/null
+++ b/components/layout/Navbar.tsx
@@ -0,0 +1,77 @@
+import { useWallet } from '@solana/wallet-adapter-react'
+import Link from 'next/link'
+import { FC } from 'react'
+
+interface INavbarElement {
+ title: string
+ url: string
+ tooltip?: string
+ disabled?: boolean
+}
+
+const Navbar: FC = () => {
+ const { publicKey } = useWallet()
+
+ const NAVBAR_ELEMENTS: INavbarElement[] = [
+ {
+ title: 'Manage CMs',
+ url: '/',
+ tooltip: 'Manage Candy Machines',
+ },
+ {
+ title: 'Create CMs',
+ url: '/create-candy-machine',
+ tooltip: 'Create Candy Machine',
+ },
+ ]
+
+ return (
+
+
+ {NAVBAR_ELEMENTS.map((element) => {
+ return
+ })}
+
+
+ )
+}
+
+const NavbarElement = ({ title, url, tooltip, disabled }: INavbarElement) => (
+
+
+ {title}
+
+ {tooltip}
+
+
+
+)
+
+export default Navbar
diff --git a/components/Layout/Spinner.tsx b/components/layout/Spinner.tsx
similarity index 100%
rename from components/Layout/Spinner.tsx
rename to components/layout/Spinner.tsx
diff --git a/components/Layout/Title.tsx b/components/layout/Title.tsx
similarity index 100%
rename from components/Layout/Title.tsx
rename to components/layout/Title.tsx
diff --git a/components/Layout/Wallet.tsx b/components/layout/Wallet.tsx
similarity index 100%
rename from components/Layout/Wallet.tsx
rename to components/layout/Wallet.tsx
diff --git a/components/Layout/index.ts b/components/layout/index.ts
similarity index 100%
rename from components/Layout/index.ts
rename to components/layout/index.ts
diff --git a/pages/[id].tsx b/pages/[id].tsx
index 08314c3..c40949e 100644
--- a/pages/[id].tsx
+++ b/pages/[id].tsx
@@ -1,15 +1,14 @@
-import type { NextPage } from 'next'
-import { useRouter } from 'next/router'
-import { useEffect, useState } from 'react'
-import { Program, AnchorProvider, BN } from '@project-serum/anchor'
-import { PublicKey, Connection } from '@solana/web3.js'
+import { AnchorProvider, BN, Program } from '@project-serum/anchor'
import { useAnchorWallet, useConnection } from '@solana/wallet-adapter-react'
-import { Spinner, Title } from 'components/Layout'
-import { FetchedCandyMachineConfig } from 'lib/interfaces'
+import { Connection, PublicKey } from '@solana/web3.js'
+import { Spinner, Title, UpdateCreateCandyMachineForm } from 'components'
import { CANDY_MACHINE_PROGRAM_V2_ID } from 'lib/constants'
-import Form from 'components/CreateCM/Form'
-import Head from 'next/head'
+import { FetchedCandyMachineConfig } from 'lib/interfaces'
import { Account } from 'lib/types'
+import type { NextPage } from 'next'
+import Head from 'next/head'
+import { useRouter } from 'next/router'
+import { useEffect, useState } from 'react'
const CandyMachine: NextPage = () => {
const router = useRouter()
@@ -105,7 +104,11 @@ const CandyMachine: NextPage = () => {
{new BN(candyMachineConfig.itemsRedeemed).toNumber()} redeemed NFT.
-
+