├── src
├── pages
│ ├── Landing
│ │ ├── styles.css
│ │ └── index.js
│ ├── GoogleDrivePicker.js
│ ├── Solstice
│ │ ├── LinkScreen
│ │ │ └── index.js
│ │ ├── ToolScreen
│ │ │ └── index.js
│ │ ├── TrackScreen
│ │ │ └── index.js
│ │ ├── AccelerateScreen
│ │ │ └── index.js
│ │ ├── DashboardScreen
│ │ │ └── index.js
│ │ ├── CloudScreen
│ │ │ ├── StylesDiv
│ │ │ │ ├── CloudPlatform.styles.js
│ │ │ │ └── index.styles.js
│ │ │ └── CloudPlatform.js
│ │ ├── UsersScreen
│ │ │ ├── index.js
│ │ │ └── StylesDiv
│ │ │ │ └── index.styles.js
│ │ ├── SettingScreen
│ │ │ ├── index.js
│ │ │ └── StylesDiv
│ │ │ │ └── index.styles.js
│ │ ├── CartScreen
│ │ │ └── StylesDiv
│ │ │ │ ├── ProductBids.styles.js
│ │ │ │ ├── ProductsTx.styles.js
│ │ │ │ └── ProductOrders.styles.js
│ │ ├── StylesDiv
│ │ │ └── Notifications.styles.js
│ │ └── NotificationsList.js
│ ├── Marketing
│ │ └── index.js
│ ├── Auth
│ │ └── index.js
│ └── ProfileLink
│ │ └── index.js
├── components
│ ├── styles.css
│ ├── Routes.js
│ ├── Main.js
│ ├── Common
│ │ ├── Loading.js
│ │ ├── PdfPreview.js
│ │ ├── CommingSoon.js
│ │ └── NotFound.js
│ ├── Solstice
│ │ ├── UploadScreen
│ │ │ └── VideoControl.js
│ │ ├── CloudScreen
│ │ │ ├── CloudPlatform
│ │ │ │ └── Socials.js
│ │ │ └── CloudPurchase
│ │ │ │ └── FileDetail.js
│ │ ├── CartScreen
│ │ │ ├── Bids
│ │ │ │ └── DateInput.js
│ │ │ ├── Orders
│ │ │ │ └── DateInput.js
│ │ │ └── NFTs
│ │ │ │ └── OwnersList.js
│ │ └── SettingScreen
│ │ │ ├── Branding.js
│ │ │ ├── CreateProducts.js
│ │ │ ├── PurchaseLink.js
│ │ │ └── ConfigurePayment.js
│ ├── Landing
│ │ └── Tracking
│ │ │ └── Social
│ │ │ └── TextField
│ │ │ └── index.js
│ ├── Auth
│ │ └── GoogleLogOutButton.js
│ ├── Modals
│ │ ├── StylesDiv
│ │ │ └── ConnectWalletModal.styles.js
│ │ └── MessageModal.js
│ └── Layouts
│ │ └── SideMenu
│ │ └── index.styles.js
├── assets
│ ├── Close.png
│ ├── avatar.png
│ ├── cloud.png
│ ├── landing.png
│ ├── mobile.png
│ ├── muscle.png
│ ├── cloud
│ │ ├── Pdf.png
│ │ ├── Image.png
│ │ ├── Video.jpg
│ │ ├── Word.png
│ │ └── EmptyFolder.png
│ ├── gradient.png
│ ├── minting
│ │ ├── 1.png
│ │ ├── 2.png
│ │ ├── 3.png
│ │ ├── ArrowLeft.svg
│ │ └── ArrowRight.svg
│ ├── solstice.mp4
│ ├── Footer
│ │ ├── figma.png
│ │ ├── footer.png
│ │ ├── github.png
│ │ ├── social.png
│ │ ├── facebook.png
│ │ ├── instagram.png
│ │ └── telegram.png
│ ├── Host
│ │ ├── creator.png
│ │ ├── business.png
│ │ ├── developer.png
│ │ └── reseller.png
│ ├── auth
│ │ └── Google.png
│ ├── background1.png
│ ├── background2.png
│ ├── background3.png
│ ├── common
│ │ ├── Close.png
│ │ ├── Ebook.png
│ │ ├── Save.png
│ │ ├── Word.png
│ │ ├── tick.png
│ │ ├── union.png
│ │ ├── Speaker.png
│ │ ├── Download.png
│ │ └── Notification.png
│ ├── landing
│ │ ├── Hero.png
│ │ └── landing.png
│ ├── menu
│ │ ├── Wallet.png
│ │ ├── usd-coin-usdc-logo-CB4C5B1C51-seeklogo.com.png
│ │ ├── Home.svg
│ │ ├── Logout.svg
│ │ ├── Filter.svg
│ │ ├── Category.svg
│ │ ├── Document.svg
│ │ ├── Chat.svg
│ │ ├── Image.svg
│ │ ├── Bag.svg
│ │ ├── Edit-Square.svg
│ │ ├── Union.svg
│ │ ├── Cart.svg
│ │ ├── Setting.svg
│ │ ├── 3-User.svg
│ │ ├── Wallet.svg
│ │ ├── Cloud.svg
│ │ └── Upload.svg
│ ├── profile
│ │ ├── Lock.png
│ │ ├── Cover.png
│ │ ├── Empty1.png
│ │ ├── Lock1.png
│ │ ├── Reload.png
│ │ ├── EmptyCart.png
│ │ ├── EmptyTrash.png
│ │ ├── TickProductType.svg
│ │ ├── product_thumb.svg
│ │ └── product_details.svg
│ ├── tokens
│ │ ├── ADA.png
│ │ ├── BTC.png
│ │ ├── CAX.png
│ │ ├── DASH.png
│ │ ├── EOS.png
│ │ ├── ETH.png
│ │ ├── LTC.png
│ │ ├── NEM.png
│ │ ├── SOL.png
│ │ └── USDC.png
│ ├── SOLS_ Website.zip
│ ├── SpaceShip
│ │ ├── mint.png
│ │ ├── board.png
│ │ ├── circle.png
│ │ ├── courses.png
│ │ ├── earth.png
│ │ ├── enigma.png
│ │ ├── launch.png
│ │ └── users.png
│ ├── Tracking
│ │ ├── host.png
│ │ ├── send.png
│ │ ├── track.png
│ │ ├── view.png
│ │ ├── avatar.png
│ │ ├── trading.png
│ │ └── accelerate.png
│ ├── links
│ │ ├── Connect.png
│ │ ├── Disconnect.png
│ │ └── white_metamask.png
│ ├── modals
│ │ ├── SolLogo.png
│ │ ├── Metamask.webp
│ │ ├── Success.svg
│ │ ├── Error.svg
│ │ ├── Thumb.svg
│ │ ├── Edit.svg
│ │ ├── ConnectArrow.svg
│ │ ├── CloseDark.svg
│ │ ├── Close.svg
│ │ └── Info.svg
│ ├── setting
│ │ ├── Apple.png
│ │ ├── Metamask.webp
│ │ └── WalletCancel.png
│ ├── avatars
│ │ └── avatar1.png
│ ├── loading
│ │ ├── loading.gif
│ │ ├── loading-dot.gif
│ │ ├── loading-circle.gif
│ │ ├── loading-wave.gif
│ │ ├── loading-waiting.gif
│ │ └── meeting with wavelet.pdf.fdmdownload
│ ├── upload
│ │ ├── EmptyList.png
│ │ └── Add.svg
│ ├── cart
│ │ ├── Left.svg
│ │ ├── Right.svg
│ │ ├── ArrowDown.svg
│ │ └── ThreeDots.svg
│ ├── add.svg
│ ├── socials
│ │ ├── FaceBook.svg
│ │ ├── Tweet.svg
│ │ ├── Reddit.svg
│ │ └── WhatsApp.svg
│ ├── folders
│ │ ├── ThreeDots.svg
│ │ ├── BlueFolder.svg
│ │ ├── GreenFolder.svg
│ │ ├── OrangeFolder.svg
│ │ └── YellowFolder.svg
│ ├── paycards
│ │ ├── Maestro.svg
│ │ ├── Mastercard.svg
│ │ ├── Visa.svg
│ │ └── Discover.svg
│ ├── close.svg
│ └── Discord.svg
├── redux
│ ├── reducers
│ │ ├── index.js
│ │ ├── transaction.js
│ │ ├── setting.js
│ │ ├── notify.js
│ │ ├── users.js
│ │ ├── wallet.js
│ │ ├── cart.js
│ │ ├── profile.js
│ │ └── cloud.js
│ ├── index.js
│ └── actions
│ │ ├── setting.js
│ │ ├── users.js
│ │ ├── transaction.js
│ │ ├── wallet.js
│ │ └── notify.js
├── static
│ ├── languages
│ │ ├── du.json
│ │ ├── tr.json
│ │ ├── de.json
│ │ ├── en.json
│ │ ├── index.js
│ │ ├── po.json
│ │ ├── fr.json
│ │ └── sp.json
│ └── constants.js
├── setupTests.js
├── utils
│ ├── ProtectedRoute.js
│ ├── reportWebVitals.js
│ ├── Language.js
│ ├── Theme.js
│ └── Helper.js
├── webpack.config.js
├── contexts
│ └── WalletContext.js
├── index.js
├── constants
│ ├── index.js
│ └── abis
│ │ └── greeter.json
├── App.js
└── firebase
│ └── database.js
├── public
├── robots.txt
├── movie.mp4
├── favicone.ico
├── apple-touch-icon.png
├── favicon-192x192.png
├── favicon-512x512.png
├── files
│ └── Senior_engineer.docx
├── manifest.json
├── .htaccess
└── index.html
├── README.md
├── helper.js
├── .env.example
└── .gitignore
/src/pages/Landing/styles.css:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/robots.txt:
--------------------------------------------------------------------------------
1 | User-agent: *
2 | Allow: /
--------------------------------------------------------------------------------
/src/components/styles.css:
--------------------------------------------------------------------------------
1 | .main {
2 | font-family: "Montserrat";
3 | }
--------------------------------------------------------------------------------
/public/movie.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/public/movie.mp4
--------------------------------------------------------------------------------
/public/favicone.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/public/favicone.ico
--------------------------------------------------------------------------------
/src/assets/Close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/Close.png
--------------------------------------------------------------------------------
/src/assets/avatar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/avatar.png
--------------------------------------------------------------------------------
/src/assets/cloud.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/cloud.png
--------------------------------------------------------------------------------
/src/assets/landing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/landing.png
--------------------------------------------------------------------------------
/src/assets/mobile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/mobile.png
--------------------------------------------------------------------------------
/src/assets/muscle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/muscle.png
--------------------------------------------------------------------------------
/src/assets/cloud/Pdf.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/cloud/Pdf.png
--------------------------------------------------------------------------------
/src/assets/gradient.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/gradient.png
--------------------------------------------------------------------------------
/src/assets/minting/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/minting/1.png
--------------------------------------------------------------------------------
/src/assets/minting/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/minting/2.png
--------------------------------------------------------------------------------
/src/assets/minting/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/minting/3.png
--------------------------------------------------------------------------------
/src/assets/solstice.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/solstice.mp4
--------------------------------------------------------------------------------
/public/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/public/apple-touch-icon.png
--------------------------------------------------------------------------------
/public/favicon-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/public/favicon-192x192.png
--------------------------------------------------------------------------------
/public/favicon-512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/public/favicon-512x512.png
--------------------------------------------------------------------------------
/src/assets/Footer/figma.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/Footer/figma.png
--------------------------------------------------------------------------------
/src/assets/Host/creator.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/Host/creator.png
--------------------------------------------------------------------------------
/src/assets/auth/Google.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/auth/Google.png
--------------------------------------------------------------------------------
/src/assets/background1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/background1.png
--------------------------------------------------------------------------------
/src/assets/background2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/background2.png
--------------------------------------------------------------------------------
/src/assets/background3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/background3.png
--------------------------------------------------------------------------------
/src/assets/cloud/Image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/cloud/Image.png
--------------------------------------------------------------------------------
/src/assets/cloud/Video.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/cloud/Video.jpg
--------------------------------------------------------------------------------
/src/assets/cloud/Word.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/cloud/Word.png
--------------------------------------------------------------------------------
/src/assets/common/Close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/common/Close.png
--------------------------------------------------------------------------------
/src/assets/common/Ebook.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/common/Ebook.png
--------------------------------------------------------------------------------
/src/assets/common/Save.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/common/Save.png
--------------------------------------------------------------------------------
/src/assets/common/Word.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/common/Word.png
--------------------------------------------------------------------------------
/src/assets/common/tick.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/common/tick.png
--------------------------------------------------------------------------------
/src/assets/common/union.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/common/union.png
--------------------------------------------------------------------------------
/src/assets/landing/Hero.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/landing/Hero.png
--------------------------------------------------------------------------------
/src/assets/menu/Wallet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/menu/Wallet.png
--------------------------------------------------------------------------------
/src/assets/profile/Lock.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/profile/Lock.png
--------------------------------------------------------------------------------
/src/assets/tokens/ADA.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/tokens/ADA.png
--------------------------------------------------------------------------------
/src/assets/tokens/BTC.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/tokens/BTC.png
--------------------------------------------------------------------------------
/src/assets/tokens/CAX.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/tokens/CAX.png
--------------------------------------------------------------------------------
/src/assets/tokens/DASH.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/tokens/DASH.png
--------------------------------------------------------------------------------
/src/assets/tokens/EOS.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/tokens/EOS.png
--------------------------------------------------------------------------------
/src/assets/tokens/ETH.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/tokens/ETH.png
--------------------------------------------------------------------------------
/src/assets/tokens/LTC.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/tokens/LTC.png
--------------------------------------------------------------------------------
/src/assets/tokens/NEM.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/tokens/NEM.png
--------------------------------------------------------------------------------
/src/assets/tokens/SOL.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/tokens/SOL.png
--------------------------------------------------------------------------------
/src/assets/tokens/USDC.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/tokens/USDC.png
--------------------------------------------------------------------------------
/src/assets/Footer/footer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/Footer/footer.png
--------------------------------------------------------------------------------
/src/assets/Footer/github.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/Footer/github.png
--------------------------------------------------------------------------------
/src/assets/Footer/social.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/Footer/social.png
--------------------------------------------------------------------------------
/src/assets/Host/business.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/Host/business.png
--------------------------------------------------------------------------------
/src/assets/Host/developer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/Host/developer.png
--------------------------------------------------------------------------------
/src/assets/Host/reseller.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/Host/reseller.png
--------------------------------------------------------------------------------
/src/assets/SOLS_ Website.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/SOLS_ Website.zip
--------------------------------------------------------------------------------
/src/assets/SpaceShip/mint.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/SpaceShip/mint.png
--------------------------------------------------------------------------------
/src/assets/Tracking/host.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/Tracking/host.png
--------------------------------------------------------------------------------
/src/assets/Tracking/send.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/Tracking/send.png
--------------------------------------------------------------------------------
/src/assets/Tracking/track.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/Tracking/track.png
--------------------------------------------------------------------------------
/src/assets/Tracking/view.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/Tracking/view.png
--------------------------------------------------------------------------------
/src/assets/common/Speaker.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/common/Speaker.png
--------------------------------------------------------------------------------
/src/assets/links/Connect.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/links/Connect.png
--------------------------------------------------------------------------------
/src/assets/modals/SolLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/modals/SolLogo.png
--------------------------------------------------------------------------------
/src/assets/profile/Cover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/profile/Cover.png
--------------------------------------------------------------------------------
/src/assets/profile/Empty1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/profile/Empty1.png
--------------------------------------------------------------------------------
/src/assets/profile/Lock1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/profile/Lock1.png
--------------------------------------------------------------------------------
/src/assets/profile/Reload.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/profile/Reload.png
--------------------------------------------------------------------------------
/src/assets/setting/Apple.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/setting/Apple.png
--------------------------------------------------------------------------------
/src/assets/Footer/facebook.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/Footer/facebook.png
--------------------------------------------------------------------------------
/src/assets/Footer/instagram.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/Footer/instagram.png
--------------------------------------------------------------------------------
/src/assets/Footer/telegram.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/Footer/telegram.png
--------------------------------------------------------------------------------
/src/assets/SpaceShip/board.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/SpaceShip/board.png
--------------------------------------------------------------------------------
/src/assets/SpaceShip/circle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/SpaceShip/circle.png
--------------------------------------------------------------------------------
/src/assets/SpaceShip/courses.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/SpaceShip/courses.png
--------------------------------------------------------------------------------
/src/assets/SpaceShip/earth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/SpaceShip/earth.png
--------------------------------------------------------------------------------
/src/assets/SpaceShip/enigma.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/SpaceShip/enigma.png
--------------------------------------------------------------------------------
/src/assets/SpaceShip/launch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/SpaceShip/launch.png
--------------------------------------------------------------------------------
/src/assets/SpaceShip/users.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/SpaceShip/users.png
--------------------------------------------------------------------------------
/src/assets/Tracking/avatar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/Tracking/avatar.png
--------------------------------------------------------------------------------
/src/assets/Tracking/trading.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/Tracking/trading.png
--------------------------------------------------------------------------------
/src/assets/avatars/avatar1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/avatars/avatar1.png
--------------------------------------------------------------------------------
/src/assets/cloud/EmptyFolder.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/cloud/EmptyFolder.png
--------------------------------------------------------------------------------
/src/assets/common/Download.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/common/Download.png
--------------------------------------------------------------------------------
/src/assets/landing/landing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/landing/landing.png
--------------------------------------------------------------------------------
/src/assets/links/Disconnect.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/links/Disconnect.png
--------------------------------------------------------------------------------
/src/assets/loading/loading.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/loading/loading.gif
--------------------------------------------------------------------------------
/src/assets/modals/Metamask.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/modals/Metamask.webp
--------------------------------------------------------------------------------
/src/assets/profile/EmptyCart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/profile/EmptyCart.png
--------------------------------------------------------------------------------
/src/assets/setting/Metamask.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/setting/Metamask.webp
--------------------------------------------------------------------------------
/src/assets/upload/EmptyList.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/upload/EmptyList.png
--------------------------------------------------------------------------------
/public/files/Senior_engineer.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/public/files/Senior_engineer.docx
--------------------------------------------------------------------------------
/src/assets/Tracking/accelerate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/Tracking/accelerate.png
--------------------------------------------------------------------------------
/src/assets/common/Notification.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/common/Notification.png
--------------------------------------------------------------------------------
/src/assets/loading/loading-dot.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/loading/loading-dot.gif
--------------------------------------------------------------------------------
/src/assets/profile/EmptyTrash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/profile/EmptyTrash.png
--------------------------------------------------------------------------------
/src/assets/links/white_metamask.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/links/white_metamask.png
--------------------------------------------------------------------------------
/src/assets/loading/loading-circle.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/loading/loading-circle.gif
--------------------------------------------------------------------------------
/src/assets/loading/loading-wave.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/loading/loading-wave.gif
--------------------------------------------------------------------------------
/src/assets/setting/WalletCancel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/setting/WalletCancel.png
--------------------------------------------------------------------------------
/src/redux/reducers/index.js:
--------------------------------------------------------------------------------
1 | import { combineReducers } from 'redux' ;
2 |
3 |
4 | export default combineReducers({
5 | });
--------------------------------------------------------------------------------
/src/static/languages/du.json:
--------------------------------------------------------------------------------
1 | {
2 | "cryptochange": "Crypto Exchange de",
3 | "tokenexchange": "Token Exchangede"
4 | }
5 |
--------------------------------------------------------------------------------
/src/static/languages/tr.json:
--------------------------------------------------------------------------------
1 | {
2 | "cryptochange": "Crypto Exchange tr",
3 | "tokenexchange": "Token Exchangetr"
4 | }
5 |
--------------------------------------------------------------------------------
/src/assets/loading/loading-waiting.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/loading/loading-waiting.gif
--------------------------------------------------------------------------------
/src/assets/loading/meeting with wavelet.pdf.fdmdownload:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/loading/meeting with wavelet.pdf.fdmdownload
--------------------------------------------------------------------------------
/src/assets/menu/usd-coin-usdc-logo-CB4C5B1C51-seeklogo.com.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Topten1004/SolsApp/HEAD/src/assets/menu/usd-coin-usdc-logo-CB4C5B1C51-seeklogo.com.png
--------------------------------------------------------------------------------
/src/redux/index.js:
--------------------------------------------------------------------------------
1 | import rootReducer from './reducers';
2 | import { createStore, applyMiddleware , compose } from 'redux';
3 |
4 | import thunk from 'redux-thunk';
5 |
6 | const store = createStore(
7 | rootReducer,
8 | {},
9 | applyMiddleware(thunk)
10 | );
11 |
12 | export default store;
--------------------------------------------------------------------------------
/src/assets/cart/Left.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # WEB SOLSTICE
2 |
3 | WEB SOLSTICE is a React UI and Firebase script for SOLSITCE.
4 |
5 | ### Prerequisites:
6 |
7 | 1. Node.
8 |
9 | ### Install and run
10 |
11 | ```bash
12 | npm install
13 | npm start
14 |
15 | - TDD
16 | npm run test
17 |
18 | #Test Case will upgrade futher more.
19 | ```
20 |
--------------------------------------------------------------------------------
/src/assets/cart/Right.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/assets/profile/TickProductType.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/helper.js:
--------------------------------------------------------------------------------
1 | export const setItem = (key, item) => {
2 | if(item) {
3 | window.localStorage.setItem(key, item);
4 | } else {
5 | window.localStorage.removeItem(key);
6 | }
7 | }
8 |
9 | export const getItem = (key) => {
10 | if(key) {
11 | return window.localStorage.getItem(key);
12 | }
13 | }
--------------------------------------------------------------------------------
/src/assets/add.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/setupTests.js:
--------------------------------------------------------------------------------
1 | // jest-dom adds custom jest matchers for asserting on DOM nodes.
2 | // allows you to do things like:
3 | // expect(element).toHaveTextContent(/react/i)
4 | // learn more: https://github.com/testing-library/jest-dom
5 |
6 | import { configure } from 'enzyme';
7 | import Adapter from 'enzyme-adapter-react-16';
8 |
9 | configure({ adapter: new Adapter() });
10 |
--------------------------------------------------------------------------------
/src/utils/ProtectedRoute.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 |
3 | import { Navigate , Outlet } from 'react-router-dom';
4 |
5 | import { isAuthenticated } from '../utils/Helper' ;
6 |
7 | const ProtectedRoute = () => {
8 | if (!isAuthenticated()) {
9 | return ;
10 | }
11 | return ;
12 | }
13 |
14 | export default ProtectedRoute ;
--------------------------------------------------------------------------------
/src/webpack.config.js:
--------------------------------------------------------------------------------
1 | const createExpoWebpackConfigAsync = require('@expo/webpack-config');
2 |
3 | module.exports = async function(env, argv) {
4 | const config = await createExpoWebpackConfigAsync({
5 | ...env,
6 | babel: {
7 | dangerouslyAddModulePathsToTranspile: ['@ui-kitten/components']
8 | }
9 | }, argv);
10 | return config;
11 | };
--------------------------------------------------------------------------------
/src/static/languages/de.json:
--------------------------------------------------------------------------------
1 | {
2 | "cryptochange": "Crypto Handel",
3 | "tokenexchange": "Token Handel",
4 | "margintrading": "Marge Handel",
5 | "futurestrading": "Futures Handel",
6 | "buycrypto": "Koop Crypto",
7 | "tokeninfobase": "Token Basis Info",
8 | "caxrewards": "CAX Beloningen",
9 | "aboutus": "Over ons",
10 | "signup": "Aanmelden",
11 | "login": "Log in"
12 | }
13 |
--------------------------------------------------------------------------------
/src/static/languages/en.json:
--------------------------------------------------------------------------------
1 | {
2 | "cryptochange": "Crypto Exchange",
3 | "tokenexchange": "Token Exchange",
4 | "margintrading": "Margin Trading",
5 | "futurestrading": "Futures Trading",
6 | "buycrypto": "Buy Crypto",
7 | "tokeninfobase": "Token Base Info",
8 | "caxrewards": "CAX Rewards",
9 | "aboutus": "About US",
10 | "signup": "Sign Up",
11 | "login": "Log In"
12 | }
13 |
--------------------------------------------------------------------------------
/src/static/languages/index.js:
--------------------------------------------------------------------------------
1 | import en from './en.json';
2 | import sp from './sp.json';
3 | import fr from './fr.json';
4 | import po from './po.json';
5 | import du from './du.json';
6 |
7 | export const dictionaryList = { en, sp, fr, po, du };
8 |
9 | export const languageOptions = {
10 | en: 'English',
11 | sp: 'Spanish',
12 | fr: 'French',
13 | po: 'Portugeese',
14 | du: 'Dutch',
15 | };
16 |
--------------------------------------------------------------------------------
/src/contexts/WalletContext.js:
--------------------------------------------------------------------------------
1 | import * as React from 'react'
2 |
3 | const WalletContext = React.createContext()
4 |
5 | export const WalletProvider = ({ children, value }) => {
6 | return (
7 |
8 | { children }
9 |
10 | )
11 | }
12 |
13 | export const useWalletInfo = () => {
14 | return React.useContext(WalletContext) ;
15 | }
16 |
--------------------------------------------------------------------------------
/src/redux/actions/setting.js:
--------------------------------------------------------------------------------
1 | import ActionTypes from "./actionTypes";
2 |
3 | export const ExpandedItem = (expandedItem) => async dispatch => {
4 | try {
5 | await dispatch({
6 | type : ActionTypes.ExpandedItem,
7 | payload : expandedItem
8 | }) ;
9 |
10 | return true ;
11 | } catch(err) {
12 | console.log(err) ;
13 | return false ;
14 | }
15 | }
--------------------------------------------------------------------------------
/src/static/languages/po.json:
--------------------------------------------------------------------------------
1 | {
2 | "cryptochange": "Bolsa de Cripto",
3 | "tokenexchange": "Bolsa de Token",
4 | "margintrading": "Negociação de Margem",
5 | "futurestrading": "Negociação de Futuros",
6 | "buycrypto": "Compre Crypto",
7 | "tokeninfobase": "Base de Informações de Token",
8 | "caxrewards": "Recompensas CAX",
9 | "aboutus": "Sobre nós",
10 | "signup": "Inscrever-se",
11 | "login": "Conecte-se"
12 | }
13 |
--------------------------------------------------------------------------------
/src/utils/reportWebVitals.js:
--------------------------------------------------------------------------------
1 | const reportWebVitals = onPerfEntry => {
2 | if (onPerfEntry && onPerfEntry instanceof Function) {
3 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {
4 | getCLS(onPerfEntry);
5 | getFID(onPerfEntry);
6 | getFCP(onPerfEntry);
7 | getLCP(onPerfEntry);
8 | getTTFB(onPerfEntry);
9 | });
10 | }
11 | };
12 |
13 | export default reportWebVitals;
14 |
--------------------------------------------------------------------------------
/src/static/languages/fr.json:
--------------------------------------------------------------------------------
1 | {
2 | "cryptochange": "Échange de Crypto",
3 | "tokenexchange": "Échange de Jeton",
4 | "margintrading": "Négociation de Marge",
5 | "futurestrading": "Négociation à Terme",
6 | "buycrypto": "Acheter Crypto",
7 | "tokeninfobase": "Base d’informations de Jeton",
8 | "caxrewards": "Récompenses CAX",
9 | "aboutus": "À propos de nous",
10 | "signup": "S'inscrire",
11 | "login": "S'identifier"
12 | }
13 |
--------------------------------------------------------------------------------
/src/static/languages/sp.json:
--------------------------------------------------------------------------------
1 | {
2 | "cryptochange": "Intercambio de Cripto",
3 | "tokenexchange": "Intercambio de Token",
4 | "margintrading": "Negociación del Margen",
5 | "futurestrading": "Negociación de Futuros",
6 | "buycrypto": "Comprar Cripto",
7 | "tokeninfobase": "Base de información del Token",
8 | "caxrewards": "Recompensas CAX",
9 | "aboutus": "Acerca de nosotros",
10 | "signup": "Regístrate",
11 | "login": "Iniciar sesión"
12 | }
13 |
--------------------------------------------------------------------------------
/src/components/Routes.js:
--------------------------------------------------------------------------------
1 | import React, { memo } from "react";
2 |
3 | import { Routes , Route } from "react-router-dom";
4 |
5 | import Landing from "../pages/Landing";
6 |
7 | const Routing = () => {
8 | return (
9 |
10 | } />
11 |
12 | );
13 | }
14 |
15 | Routing.propTypes = {
16 | // selectLanding: PropTypes.func.isRequired,
17 | };
18 |
19 | export default memo(Routing);
20 |
--------------------------------------------------------------------------------
/src/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import ReactDOM from 'react-dom';
3 | import App from './App';
4 |
5 | import 'dotenv/config';
6 |
7 | import reportWebVitals from './utils/reportWebVitals';
8 |
9 | ReactDOM.render(
10 | //
11 | //
12 | ,
13 | // ,
14 | // ,
15 | document.getElementById('root')
16 | );
17 |
18 | reportWebVitals();
19 |
--------------------------------------------------------------------------------
/src/assets/modals/Success.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/src/redux/reducers/transaction.js:
--------------------------------------------------------------------------------
1 | import ActionTypes from "../actions/actionTypes";
2 |
3 | const INITIAL_STATE = {
4 | txsList : null
5 | }
6 |
7 | export default function transaction(state=INITIAL_STATE, action) {
8 | switch(action.type) {
9 | case ActionTypes.AllTxsList :
10 | return ({
11 | ...state,
12 | txsList : action.payload
13 | });
14 | default :
15 | return state ;
16 | }
17 | }
--------------------------------------------------------------------------------
/src/redux/reducers/setting.js:
--------------------------------------------------------------------------------
1 | import ActionTypes from "../actions/actionTypes";
2 |
3 | const INITIAL_STATE = {
4 | expandedItem : 1 ,
5 | }
6 |
7 | export default function setting(state=INITIAL_STATE, action={}){
8 | switch(action.type) {
9 | case ActionTypes.ExpandedItem :
10 | return ({
11 | ...state,
12 | expandedItem : action.payload
13 | })
14 | default :
15 | return state ;
16 | }
17 | }
--------------------------------------------------------------------------------
/src/assets/minting/ArrowLeft.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/assets/minting/ArrowRight.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/constants/index.js:
--------------------------------------------------------------------------------
1 | import { InjectedConnector } from "@web3-react/injected-connector";
2 |
3 | export const injected = new InjectedConnector({ supportedChainIds: [1, 3, 4, 5, 42, 1337, 31337] });
4 |
5 | export const CALADEX_ADDR = "0x0Ea0dadEe1Fb544e598D5425651b510B69ba6855" ;
6 | // export const CALADEX_ADDR = "0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC" ;
7 |
8 | export const DAI_ADDR = "0xad6d458402f60fd3bd25163575031acdce07538d" ;
9 |
10 | export const BLOCK_CONFIRMATION_THRESHOLD = 1;
--------------------------------------------------------------------------------
/src/assets/cart/ArrowDown.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/assets/socials/FaceBook.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/src/redux/reducers/notify.js:
--------------------------------------------------------------------------------
1 | import ActionTypes from '../actions/actionTypes' ;
2 |
3 | const INITIAL_STATE = {
4 | notifysList : null
5 | }
6 |
7 | export default (state=INITIAL_STATE , action={}) => {
8 | switch(action.type) {
9 | case ActionTypes.FetchAllNotify:
10 | return ({
11 | ...state,
12 | notifysList : {
13 | ...action.payload
14 | }
15 | }) ;
16 | default :
17 | return state ;
18 | }
19 | }
--------------------------------------------------------------------------------
/src/redux/reducers/users.js:
--------------------------------------------------------------------------------
1 | import ActionTypes from '../actions/actionTypes' ;
2 |
3 | const INITIAL_STATE = {
4 | customersList : null
5 | }
6 |
7 | export default (state=INITIAL_STATE , action={}) => {
8 | switch(action.type) {
9 | case ActionTypes.FetchCustomersList:
10 | return ({
11 | ...state,
12 | customersList : {
13 | ...action.payload
14 | }
15 | }) ;
16 | default :
17 | return state ;
18 | }
19 | }
--------------------------------------------------------------------------------
/.env.example:
--------------------------------------------------------------------------------
1 |
2 | REACT_APP_FIREBASE_API_KEY=AIzaSyBUtSlYfYixrEc9bLOL_HXmdXFvx48FdjI
3 | REACT_APP_FIREBASE_AUTH_DOMAIN=solstice-d447d.firebaseapp.com
4 | REACT_APP_FIREBASE_PROJECT_ID=solstice-d447d
5 | REACT_APP_FIREBASE_STORAGE_BUCKET=solstice-d447d.appspot.com
6 | REACT_APP_FIREBASE_DATABASE_URL=https://solstice-d447d.firebaseio.com
7 | REACT_APP_FIREBASE_MESSAGING_SENDER_ID=871800563389
8 | REACT_APP_FIREBASE_APP_ID=1:871800563389:web:7518594423223767e0f9d4
9 | REACT_APP_FIREBASE_MEASUREMENT_ID=G-G8C6EBJ1KY
10 |
11 | SKIP_PREFLIGHT_CHECK=true
12 |
--------------------------------------------------------------------------------
/src/assets/modals/Error.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/src/assets/cart/ThreeDots.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/src/static/constants.js:
--------------------------------------------------------------------------------
1 | export const DefaultLocale = 'EN';
2 |
3 | // export const BACKEND_URL = 'https://calahex.io/api/';
4 | // export const BACKEND_URL = 'http://127.0.0.1:8000/api/';
5 |
6 | export const PUBLIC_API_URL = "https://poloniex.com/public?" ;
7 |
8 | export const PUBULIC_EXCHANGE_RATE_API = "https://api.coinbase.com/v2/exchange-rates?currency=" ;
9 |
10 | export const CA1HEX_HOST_URL = 'http://10.10.10.169:5000' ;
11 |
12 | export const PRIVATE_CA1EX_API = "http://10.10.10.169:5000/v1/ex/api/" ;
13 | export const PUBLIC_CA1EX_API = "http://10.10.10.169:5000/v1/ex/files/" ;
14 |
--------------------------------------------------------------------------------
/public/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "short_name": "CALAHEX",
3 | "name": "Caribbean And Latin America Hybrid Exchange",
4 | "icons": [
5 | {
6 | "src": "favicon.ico",
7 | "sizes": "64x64 32x32 16x16",
8 | "type": "image/x-icon"
9 | },
10 | {
11 | "src": "favicon-192x192.png",
12 | "sizes": "192x192",
13 | "type": "image/png"
14 | },
15 | {
16 | "src": "favicon-512x512.png",
17 | "sizes": "512x512",
18 | "type": "image/png"
19 | }
20 | ],
21 | "start_url": "./index.html",
22 | "display": "standalone",
23 | "theme_color": "#337ab7",
24 | "background_color": "#fff"
25 | }
26 |
--------------------------------------------------------------------------------
/src/assets/folders/ThreeDots.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/src/assets/modals/Thumb.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/src/assets/modals/Edit.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/src/assets/menu/Home.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/assets/folders/BlueFolder.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/src/assets/folders/GreenFolder.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/src/assets/folders/OrangeFolder.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/src/assets/folders/YellowFolder.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/public/.htaccess:
--------------------------------------------------------------------------------
1 | # RewriteEngine On
2 | # RewriteCond %{HTTPS} !=on
3 | # RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
4 | # Header always set Content-Security-Policy "upgrade-insecure-requests;"
5 |
6 | # BEGIN WordPress
7 | # The directives (lines) between `BEGIN WordPress` and `END WordPress` are
8 | # dynamically generated, and should only be modified via WordPress filters.
9 | # Any changes to the directives between these markers will be overwritten.
10 |
11 | RewriteEngine On
12 | RewriteCond %{SERVER_PORT} 80
13 | RewriteRule ^(.*)$ https://exp.solsapp.com/$1 [R=301,L,NE]
14 | RewriteBase /subdirectory
15 | RewriteRule ^index\.html$ - [L]
16 | RewriteCond %{REQUEST_FILENAME} !-f
17 | RewriteCond %{REQUEST_FILENAME} !-d
18 | RewriteCond %{REQUEST_FILENAME} !-l
19 | RewriteRule . /index.html [L]
20 |
21 | # END WordPress
22 |
--------------------------------------------------------------------------------
/src/constants/abis/greeter.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "inputs": [
4 | {
5 | "internalType": "string",
6 | "name": "_greeting",
7 | "type": "string"
8 | }
9 | ],
10 | "stateMutability": "nonpayable",
11 | "type": "constructor"
12 | },
13 | {
14 | "inputs": [],
15 | "name": "greet",
16 | "outputs": [
17 | {
18 | "internalType": "string",
19 | "name": "",
20 | "type": "string"
21 | }
22 | ],
23 | "stateMutability": "view",
24 | "type": "function"
25 | },
26 | {
27 | "inputs": [
28 | {
29 | "internalType": "string",
30 | "name": "_greeting",
31 | "type": "string"
32 | }
33 | ],
34 | "name": "setGreeting",
35 | "outputs": [],
36 | "stateMutability": "nonpayable",
37 | "type": "function"
38 | }
39 | ]
--------------------------------------------------------------------------------
/src/assets/menu/Logout.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/assets/modals/ConnectArrow.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/src/assets/modals/CloseDark.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/src/assets/paycards/Maestro.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/src/components/Main.js:
--------------------------------------------------------------------------------
1 | import React,{ useEffect } from 'react' ;
2 |
3 | import { connect } from 'react-redux';
4 |
5 | import Footer from './Layouts/Footer' ;
6 |
7 | import Routing from './Routes';
8 | import './styles.css';
9 | import "@fontsource/montserrat";
10 |
11 | import {
12 | Box
13 | } from '@mui/material' ;
14 |
15 | import { makeStyles } from '@mui/styles';
16 |
17 | const useStyles = makeStyles((theme) => ({
18 | }))
19 |
20 |
21 | const Main = (props) => {
22 | const classes = useStyles() ;
23 |
24 | const {
25 | } = props ;
26 |
27 | return (
28 |
29 |
30 |
31 |
32 |
33 |
34 | )
35 | }
36 |
37 | Main.propTypes = {
38 | }
39 |
40 | const mapStateToProps = state => ({
41 |
42 | }) ;
43 |
44 | const mapDispatchToProps = {
45 | } ;
46 |
47 | export default connect(mapStateToProps, mapDispatchToProps)(Main) ;
--------------------------------------------------------------------------------
/src/assets/menu/Filter.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/assets/modals/Close.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/src/assets/menu/Category.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/assets/menu/Document.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/App.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 |
3 | // Suspense
4 | import { Fragment , Suspense , lazy } from 'react' ;
5 |
6 | // Theme
7 | import { ThemeProvider , CssBaseline } from '@mui/material';
8 | import theme from './utils/Theme' ;
9 |
10 | // Language
11 | import { LanguageProvider } from "./utils/Language";
12 |
13 | // Store
14 | import { Provider } from 'react-redux' ;
15 | import store from './redux';
16 |
17 | // Router
18 | import { BrowserRouter , Routes , Route } from 'react-router-dom';
19 |
20 | const MainComponent = lazy(() => import('./components/Main')) ;
21 |
22 | const App = () => {
23 | return (
24 |
25 |
26 |
27 |
28 |
29 | } >
30 |
31 | } />
32 |
33 |
34 |
35 |
36 |
37 |
38 | );
39 | }
40 |
41 | export default App;
42 |
--------------------------------------------------------------------------------
/src/assets/close.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/src/assets/menu/Chat.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/assets/socials/Tweet.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/src/components/Common/Loading.js:
--------------------------------------------------------------------------------
1 | import React from 'react' ;
2 |
3 | import {
4 | Box,
5 | CircularProgress
6 | } from '@mui/material' ;
7 |
8 | import { makeStyles } from '@mui/styles' ;
9 |
10 | const useStyles = makeStyles(() => ({
11 | root : {
12 | position : 'fixed',
13 | top:0,
14 | left : 0,
15 | zIndex : 1500,
16 |
17 | display : 'flex',
18 | flexDirection : 'column',
19 | alignItems : 'center',
20 | justifyContent : 'center',
21 |
22 | width : '100vw',
23 | height : '100vh',
24 |
25 | backdropFilter : "blur(5px)"
26 | },
27 | status : {
28 | fontSize : 20,
29 | fontWeight : 600,
30 | marginBottom : 10
31 | }
32 | })) ;
33 |
34 | const Loading = (props) => {
35 | const classes = useStyles() ;
36 |
37 | const {
38 | status
39 | } = props ;
40 |
41 | return (
42 |
43 |
44 | {
45 | status
46 | }
47 |
48 |
49 |
50 | )
51 | }
52 |
53 | export default Loading ;
--------------------------------------------------------------------------------
/src/components/Solstice/UploadScreen/VideoControl.js:
--------------------------------------------------------------------------------
1 | import * as React from 'react' ;
2 |
3 | import format from 'format-duration' ;
4 |
5 | const VideoControl = (props) => {
6 |
7 | const {
8 | videoPreview,
9 | videoIndex,
10 | fileType,
11 |
12 | handleChangeDuration,
13 | } = props ;
14 |
15 | const [format_duration, setFormatDuration] = React.useState(null) ;
16 | const [duration, setDuration] = React.useState(null) ;
17 |
18 | const videoRef = React.useRef() ;
19 |
20 | const handleLoadedMetadata = () => {
21 | const video = videoRef.current ;
22 |
23 | if(!video) return ;
24 |
25 | setFormatDuration(format(video.duration * 1000)) ;
26 | setDuration(video.duration) ;
27 | }
28 |
29 | React.useEffect(() => {
30 | if(format_duration && duration) {
31 | handleChangeDuration(videoIndex, format_duration, duration, fileType) ;
32 | }
33 | }, [format_duration, duration]) ;
34 |
35 | return (
36 | <>
37 |
38 | >
39 | )
40 | }
41 |
42 | export default VideoControl ;
--------------------------------------------------------------------------------
/src/firebase/database.js:
--------------------------------------------------------------------------------
1 |
2 | import { initializeApp } from "firebase/app";
3 | import { getAnalytics } from "firebase/analytics";
4 | import { getStorage } from 'firebase/storage' ;
5 | import { getAuth } from 'firebase/auth' ;
6 | import { getFirestore } from 'firebase/firestore' ;
7 | import { getDatabase } from 'firebase/database' ;
8 |
9 | const firebaseConfig = {
10 | apiKey: process.env.REACT_APP_FIREBASE_API_KEY,
11 | authDomain: process.env.REACT_APP_FIREBASE_AUTH_DOMAIN,
12 | projectId: process.env.REACT_APP_FIREBASE_PROJECT_ID,
13 | storageBucket: process.env.REACT_APP_FIREBASE_STORAGE_BUCKET,
14 | messagingSenderId: process.env.REACT_APP_FIREBASE_MESSAGING_SENDER_ID,
15 | appId: process.env.REACT_APP_FIREBASE_APP_ID,
16 | measurementId: process.env.REACT_APP_FIREBASE_MEASUREMENT_ID,
17 | databaseURL: "https://solstice-d447d-default-rtdb.firebaseio.com",
18 | };
19 |
20 | const firebaseApp = initializeApp(firebaseConfig);
21 | const analytics = getAnalytics(firebaseApp);
22 |
23 | const storage = getStorage(firebaseApp) ;
24 | const auth = getAuth(firebaseApp) ;
25 | auth.languageCode = 'it';
26 | const db = getFirestore(firebaseApp) ;
27 | const realDb = getDatabase(firebaseApp) ;
28 |
29 | export {auth, firebaseApp , storage, db, realDb} ;
--------------------------------------------------------------------------------
/src/assets/menu/Image.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/assets/menu/Bag.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/assets/profile/product_thumb.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/assets/upload/Add.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/pages/GoogleDrivePicker.js:
--------------------------------------------------------------------------------
1 | import React , { useEffect } from 'react';
2 | import useDrivePicker from 'react-google-drive-picker'
3 |
4 |
5 | function GoogleDrivePicker() {
6 | const [openPicker, data, authResponse] = useDrivePicker({onCancel: () => console.log("User closed picker with close/cancel button")});
7 | // const customViewsArray = [new google.picker.DocsView()]; // custom view
8 | const handleOpenPicker = () => {
9 | openPicker({
10 | clientId: "871800563389-7dsniriocsk3er0sv9f17i8j5v5buua4.apps.googleusercontent.com",
11 | developerKey: "AIzaSyBUrLpKSkXaHKpVKheQH75vfWV6Vs25bP4",
12 | viewId: "DOCS",
13 | // token: token, // pass oauth token in case you already have one
14 | showUploadView: true,
15 | showUploadFolders: true,
16 | supportDrives: true,
17 | multiselect: true,
18 | // customViews: customViewsArray, // custom view
19 | })
20 | }
21 |
22 | useEffect(() => {
23 | // do anything with the selected/uploaded files
24 | if(data){
25 | data.docs.map(i => console.log(i.name))
26 | }
27 | }, [data])
28 |
29 |
30 | return (
31 |
32 |
33 |
34 | );
35 | }
36 |
37 | export default GoogleDrivePicker;
--------------------------------------------------------------------------------
/src/utils/Language.js:
--------------------------------------------------------------------------------
1 | import React, { useState, createContext , useContext } from 'react';
2 |
3 | import { languageOptions, dictionaryList } from '../static/languages';
4 |
5 | // create the language context with default selected language
6 | export const LanguageContext = createContext({
7 | userLanguage: 'en',
8 | dictionary: dictionaryList.en
9 | });
10 |
11 | // it provides the language context to app
12 | export function LanguageProvider({ children }) {
13 |
14 | const [userLanguage, setUserLanguage] = useState('en');
15 |
16 | const provider = {
17 |
18 | userLanguage,
19 |
20 | dictionary: dictionaryList[userLanguage],
21 |
22 | userLanguageChange : selected => {
23 |
24 | const newLanguage = languageOptions[selected] ? selected : 'en'
25 | setUserLanguage(newLanguage);
26 | window.localStorage.setItem('rcml-lang', newLanguage);
27 |
28 | }
29 |
30 | };
31 |
32 | return (
33 |
34 | {children}
35 |
36 | );
37 | };
38 |
39 | // get text according to id & current language
40 | export function Text({ tid }) {
41 | const languageContext = useContext(LanguageContext);
42 |
43 | return languageContext.dictionary[tid] || tid;
44 | };
45 |
--------------------------------------------------------------------------------
/src/assets/modals/Info.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/src/assets/paycards/Mastercard.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/src/redux/reducers/wallet.js:
--------------------------------------------------------------------------------
1 | import ActionTypes from '../actions/actionTypes' ;
2 |
3 | const INITIAL_STATE = {
4 | isConnected : false ,
5 | web3Provider : null,
6 | walletAddress : null,
7 | provider : null,
8 | chainData : null
9 | }
10 |
11 | export default (state=INITIAL_STATE , action={}) => {
12 | switch(action.type) {
13 | case ActionTypes.ConnectAppToWallet :
14 | return ({
15 | ...state ,
16 | walletAddress : action.payload.walletAddress ,
17 | web3Provider : action.payload.web3Provider,
18 | provider : action.payload.provider,
19 | }) ;
20 | case ActionTypes.UpdateWalletData :
21 | return ({
22 | ...state,
23 | walletAddress : action.payload.walletAddress,
24 | web3Provider : action.payload.web3Provider,
25 | provider : action.payload.provider,
26 | chainData : action.payload.chainData,
27 | isConnected : action.payload.isConnected
28 | })
29 | case ActionTypes.AccountChanged :
30 | return ({
31 | ...state,
32 | walletAddress : action.payload
33 | }) ;
34 | default :
35 | return state ;
36 | }
37 | }
--------------------------------------------------------------------------------
/src/assets/paycards/Visa.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/src/assets/menu/Edit-Square.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/pages/Solstice/LinkScreen/index.js:
--------------------------------------------------------------------------------
1 | import React, { useState } from 'react';
2 |
3 | import CommingSoon from '../../../components/Common/CommingSoon';
4 |
5 | import {
6 | Box,
7 | } from '@mui/material' ;
8 |
9 | import {makeStyles} from '@mui/styles';
10 |
11 | const useStyles = makeStyles(() => ({
12 | root : {
13 | backgroundColor : "#011627",
14 | minHeight : '100vh',
15 | position : 'relative',
16 | },
17 | greenBlur : {
18 | position : 'absolute',
19 | width: 200,
20 | height: 150,
21 | left: 45,
22 | top: 170,
23 |
24 | background: '#43D9AD',
25 | opacity: '0.35',
26 | filter: 'blur(55px)',
27 | transform: 'rotate(-140.38deg)'
28 | },
29 | blueBlur : {
30 | position : 'absolute',
31 | width: 200,
32 | height: 150,
33 | right: 45,
34 | top: 400,
35 |
36 | background: '#4D5BCE',
37 | opacity: '0.35',
38 | filter: 'blur(55px)',
39 | transform: 'rotate(-140.38deg)'
40 | },
41 | }));
42 |
43 | const LinkScreen = () => {
44 |
45 | const classes = useStyles() ;
46 |
47 | return (
48 |
49 |
50 |
51 |
52 |
53 | );
54 | }
55 |
56 | export default LinkScreen ;
--------------------------------------------------------------------------------
/src/pages/Solstice/ToolScreen/index.js:
--------------------------------------------------------------------------------
1 | import React, { useState } from 'react';
2 |
3 | import CommingSoon from '../../../components/Common/CommingSoon';
4 |
5 | import {
6 | Box,
7 | } from '@mui/material' ;
8 |
9 | import {makeStyles} from '@mui/styles';
10 |
11 | const useStyles = makeStyles(() => ({
12 | root : {
13 | backgroundColor : "#011627",
14 | minHeight : '100vh',
15 | position : 'relative',
16 | },
17 | greenBlur : {
18 | position : 'absolute',
19 | width: 200,
20 | height: 150,
21 | left: 45,
22 | top: 170,
23 |
24 | background: '#43D9AD',
25 | opacity: '0.35',
26 | filter: 'blur(55px)',
27 | transform: 'rotate(-140.38deg)'
28 | },
29 | blueBlur : {
30 | position : 'absolute',
31 | width: 200,
32 | height: 150,
33 | right: 45,
34 | top: 400,
35 |
36 | background: '#4D5BCE',
37 | opacity: '0.35',
38 | filter: 'blur(55px)',
39 | transform: 'rotate(-140.38deg)'
40 | },
41 | }));
42 |
43 | const ToolScreen = () => {
44 |
45 | const classes = useStyles() ;
46 |
47 | return (
48 |
49 |
50 |
51 |
52 |
53 | );
54 | }
55 |
56 | export default ToolScreen ;
--------------------------------------------------------------------------------
/src/pages/Solstice/TrackScreen/index.js:
--------------------------------------------------------------------------------
1 | import React, { useState } from 'react';
2 |
3 | import CommingSoon from '../../../components/Common/CommingSoon';
4 |
5 | import {
6 | Box,
7 | } from '@mui/material' ;
8 |
9 | import {makeStyles} from '@mui/styles';
10 |
11 | const useStyles = makeStyles(() => ({
12 | root : {
13 | backgroundColor : "#011627",
14 | minHeight : '100vh',
15 | position : 'relative',
16 | },
17 | greenBlur : {
18 | position : 'absolute',
19 | width: 200,
20 | height: 150,
21 | left: 45,
22 | top: 170,
23 |
24 | background: '#43D9AD',
25 | opacity: '0.35',
26 | filter: 'blur(55px)',
27 | transform: 'rotate(-140.38deg)'
28 | },
29 | blueBlur : {
30 | position : 'absolute',
31 | width: 200,
32 | height: 150,
33 | right: 45,
34 | top: 400,
35 |
36 | background: '#4D5BCE',
37 | opacity: '0.35',
38 | filter: 'blur(55px)',
39 | transform: 'rotate(-140.38deg)'
40 | },
41 | }));
42 |
43 | const TrackScreen = () => {
44 |
45 | const classes = useStyles() ;
46 |
47 | return (
48 |
49 |
50 |
51 |
52 |
53 | );
54 | }
55 |
56 | export default TrackScreen ;
--------------------------------------------------------------------------------
/src/pages/Solstice/AccelerateScreen/index.js:
--------------------------------------------------------------------------------
1 | import React, { useState } from 'react';
2 |
3 | import CommingSoon from '../../../components/Common/CommingSoon';
4 |
5 | import {
6 | Box,
7 | } from '@mui/material' ;
8 |
9 | import {makeStyles} from '@mui/styles';
10 |
11 | const useStyles = makeStyles(() => ({
12 | root : {
13 | backgroundColor : "#011627",
14 | minHeight : '100vh',
15 | position : 'relative',
16 | },
17 | greenBlur : {
18 | position : 'absolute',
19 | width: 200,
20 | height: 150,
21 | left: 45,
22 | top: 170,
23 |
24 | background: '#43D9AD',
25 | opacity: '0.35',
26 | filter: 'blur(55px)',
27 | transform: 'rotate(-140.38deg)'
28 | },
29 | blueBlur : {
30 | position : 'absolute',
31 | width: 200,
32 | height: 150,
33 | right: 45,
34 | top: 400,
35 |
36 | background: '#4D5BCE',
37 | opacity: '0.35',
38 | filter: 'blur(55px)',
39 | transform: 'rotate(-140.38deg)'
40 | },
41 | }));
42 |
43 | const AccelerateScreen = () => {
44 |
45 | const classes = useStyles() ;
46 |
47 | return (
48 |
49 |
50 |
51 |
52 |
53 | );
54 | }
55 |
56 | export default AccelerateScreen ;
--------------------------------------------------------------------------------
/src/pages/Solstice/DashboardScreen/index.js:
--------------------------------------------------------------------------------
1 | import React, { useState } from 'react';
2 |
3 | import CommingSoon from '../../../components/Common/CommingSoon';
4 |
5 | import {
6 | Box,
7 | } from '@mui/material' ;
8 |
9 | import {makeStyles} from '@mui/styles';
10 |
11 | const useStyles = makeStyles(() => ({
12 | root : {
13 | backgroundColor : "#011627",
14 | minHeight : '100vh',
15 | position : 'relative',
16 | },
17 | greenBlur : {
18 | position : 'absolute',
19 | width: 200,
20 | height: 150,
21 | left: 45,
22 | top: 170,
23 |
24 | background: '#43D9AD',
25 | opacity: '0.35',
26 | filter: 'blur(55px)',
27 | transform: 'rotate(-140.38deg)'
28 | },
29 | blueBlur : {
30 | position : 'absolute',
31 | width: 200,
32 | height: 150,
33 | right: 45,
34 | top: 400,
35 |
36 | background: '#4D5BCE',
37 | opacity: '0.35',
38 | filter: 'blur(55px)',
39 | transform: 'rotate(-140.38deg)'
40 | },
41 | }));
42 |
43 | const DashboardScreen = () => {
44 |
45 | const classes = useStyles() ;
46 |
47 | return (
48 |
49 |
50 |
51 |
52 |
53 | );
54 | }
55 |
56 | export default DashboardScreen ;
--------------------------------------------------------------------------------
/src/redux/reducers/cart.js:
--------------------------------------------------------------------------------
1 | import ActionTypes from '../actions/actionTypes' ;
2 |
3 | const INITIAL_STATE = {
4 | productsInfoList : null,
5 | bidsInfoList : null,
6 | ordersInfoList : null,
7 | nftsInfoList : null,
8 | txsInfoList : null,
9 | loadingTx : false
10 | }
11 |
12 | export default function cart(state=INITIAL_STATE, action) {
13 | switch(action.type) {
14 | case ActionTypes.ProductsInfoList :
15 | return ({
16 | ...state,
17 | productsInfoList : action.payload
18 | }) ;
19 | case ActionTypes.UserNFTsInfoList :
20 | return ({
21 | ...state,
22 | nftsInfoList : action.payload
23 | });
24 | case ActionTypes.UserBidsInfoList :
25 | return ({
26 | ...state,
27 | bidsInfoList : action.payload
28 | });
29 | case ActionTypes.UserOrdersInfoList:
30 | return ({
31 | ...state,
32 | ordersInfoList : action.payload
33 | });
34 | case ActionTypes.UserTxsInfoList :
35 | return ({
36 | ...state,
37 | txsInfoList : action.payload
38 | });
39 | case ActionTypes.LoadingTransaction:
40 | return ({
41 | ...state,
42 | loadingTx : action.payload
43 | }) ;
44 | default :
45 | return state ;
46 | }
47 | }
--------------------------------------------------------------------------------
/src/redux/actions/users.js:
--------------------------------------------------------------------------------
1 | import ActionTypes from './actionTypes' ;
2 |
3 | import { realDb } from '../../firebase/database' ;
4 | import { ref, onValue, push, child, update} from "firebase/database";
5 |
6 | export const FetchCustomersList = () => async dispatch =>{
7 | try {
8 | const starCountRef = ref(realDb, 'Web_Customers/');
9 |
10 | onValue(starCountRef, async (snapshot) => {
11 | const data = snapshot.val();
12 |
13 | await dispatch({
14 | type : ActionTypes.FetchCustomersList,
15 | payload : data || {}
16 | }) ;
17 | });
18 |
19 | return true ;
20 | } catch(err) {
21 | console.log(err) ;
22 | return false ;
23 | }
24 | }
25 |
26 | export const WriteCustomerInfo = async (fullName, userName, email, profileLink) => {
27 | try {
28 |
29 | let newCustomer = {
30 | fullName: fullName,
31 | userName: userName,
32 | email: email,
33 | profileLink: profileLink
34 | };
35 |
36 | // Get a key for a new Post.
37 | let newCustomerKey = push(child(ref(realDb), 'Web_Customers')).key;
38 |
39 | let updates = {} ;
40 | updates['Web_Customers/' + newCustomerKey] = newCustomer ;
41 |
42 | update(ref(realDb), updates) ;
43 |
44 | return newCustomerKey ;
45 | } catch(err) {
46 | console.log(err) ;
47 | return false ;
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/src/assets/menu/Union.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/utils/Theme.js:
--------------------------------------------------------------------------------
1 | import { createTheme, responsiveFontSizes } from "@mui/material/styles";
2 | import * as locale from '@mui/material/locale';
3 |
4 | import { DefaultLocale } from '../static/constants';
5 |
6 | // colors
7 | const primary = "#283646";
8 | const secondary = "#C72127";
9 | const warningLight = "rgba(255, 246, 32, .3)";
10 | const warningMain = "rgba(255, 246, 32, .5)";
11 | const warningDark = "rgba(255, 246, 32, .7)";
12 | const background = '#F5F5F5';
13 | // border
14 | const borderWidth = 1;
15 | const borderColor = "#2e6da4";
16 |
17 | // spacing
18 | const spacing = 8;
19 |
20 | const theme = createTheme({
21 | layout: {
22 | headerHeight : 100 ,
23 | contentWidth: 1140,
24 | footerWidth: 1400
25 | },
26 | palette: {
27 | primary: { main: primary, footer: '#055da6' },
28 | secondary: { main: secondary },
29 | common: {
30 | },
31 | warning: {
32 | light: warningLight,
33 | main: warningMain,
34 | dark: warningDark
35 | },
36 | tonalOffset: 0.2,
37 | background: {
38 | default: background,
39 | gray: '#f1f1f170'
40 | },
41 | spacing
42 | },
43 | border: {
44 | borderColor: borderColor,
45 | borderWidth: borderWidth
46 | },
47 | overrides: {
48 |
49 | },
50 | typography: {
51 | useNextVariants: true
52 | }
53 | }, locale[DefaultLocale]);
54 |
55 | export default responsiveFontSizes(theme);
56 |
--------------------------------------------------------------------------------
/src/components/Solstice/CloudScreen/CloudPlatform/Socials.js:
--------------------------------------------------------------------------------
1 | import * as React from 'react' ;
2 |
3 | import TweetImage from '../../../../assets/socials/Tweet.svg' ;
4 | import FaceBookImage from '../../../../assets/socials/FaceBook.svg' ;
5 | import RedditImage from '../../../../assets/socials/Reddit.svg' ;
6 | import WhatsAppImage from '../../../../assets/socials/WhatsApp.svg' ;
7 |
8 | import {
9 | Box
10 | } from '@mui/material';
11 |
12 | const Socials = () => {
13 | return (
14 |
15 |
16 |
17 | Twitter
18 |
19 |
20 |
21 | FaceBook
22 |
23 |
24 |
25 | Reddit
26 |
27 |
28 |
29 | WhatsApp
30 |
31 |
32 | )
33 | }
34 |
35 | export default Socials ;
--------------------------------------------------------------------------------
/src/assets/menu/Cart.svg:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/src/redux/actions/transaction.js:
--------------------------------------------------------------------------------
1 | import ActionTypes from "./actionTypes";
2 |
3 | import { db, auth } from "../../firebase/database";
4 | import { doc, setDoc, getDoc, updateDoc, getDocs, query, collection, orderBy, where , Timestamp} from 'firebase/firestore' ;
5 | import { ref, uploadBytesResumable, getDownloadURL } from 'firebase/storage' ;
6 | import { getCookie, getProductId } from "../../utils/Helper";
7 |
8 | export const AddTransaction = (_from , _to, status) => async dispatch => {
9 | try {
10 | let docRef ;
11 |
12 | docRef = await addDoc(collection(db, "Web_Transactions"), {
13 | from : _from,
14 | to : _to,
15 | status : status,
16 | created_at : Timestamp.now()
17 | }) ;
18 |
19 | return true ;
20 | } catch(err) {
21 | console.log(err) ;
22 | return false ;
23 | }
24 | }
25 |
26 | export const AllTxsList = () => async dispatch => {
27 | try {
28 | let querySnapshots = await getDocs(collection(db, "Web_Transactions")) ;
29 |
30 | let txsList = [] ;
31 |
32 | for(let tx of querySnapshots.docs) {
33 | txsList.push({
34 | ...tx.data(),
35 | tx_id : tx.id
36 | }) ;
37 | }
38 |
39 | await dispatch({
40 | type : ActionTypes.AllTxsList,
41 | payload : txsList
42 | });
43 |
44 | return true ;
45 | } catch(err) {
46 | console.log(err) ;
47 | return false ;
48 | }
49 | }
--------------------------------------------------------------------------------
/src/redux/actions/wallet.js:
--------------------------------------------------------------------------------
1 | import ActionTypes from "./actionTypes" ;
2 |
3 | export const ConnectAppToWallet = (connectionInfo) => async dispatch => {
4 | try {
5 | dispatch({
6 | type : ActionTypes.ConnectAppToWallet,
7 | payload : {
8 | provider: connectionInfo.provider,
9 | walletAddress : connectionInfo.walletAddress,
10 | web3Provider : connectionInfo.web3Provider
11 | }
12 | })
13 | }
14 | catch(err) {
15 | console.log(err);
16 | }
17 | }
18 | export const UpdateWalletData = (walletData, isConnected=true) => async dispatch => {
19 | try {
20 | await dispatch({
21 | type : ActionTypes.UpdateWalletData,
22 | payload : {
23 | provider : walletData.provider,
24 | web3Provider : walletData.web3Provider,
25 | walletAddress : walletData.walletAddress,
26 | chainData : walletData.chainData,
27 | isConnected : isConnected
28 | }
29 | }) ;
30 | return true ;
31 | } catch(err) {
32 | console.log(err) ;
33 | return false ;
34 | }
35 | }
36 | export const AccountChanged = (account) => async dispatch => {
37 | try {
38 | await dispatch({
39 | type : ActionTypes.AccountChanged,
40 | payload : account
41 | }) ;
42 | return true ;
43 | } catch(err){
44 | console.log(err) ;
45 | return false ;
46 | }
47 | }
--------------------------------------------------------------------------------
/src/pages/Marketing/index.js:
--------------------------------------------------------------------------------
1 | import React,{ useEffect } from 'react' ;
2 | import {Routes, Route, useNavigate} from 'react-router-dom';
3 |
4 | import { connect } from 'react-redux' ;
5 |
6 | import Template from './Template';
7 | import WelcomeDiscord from './WelcomeDiscord';
8 | import CalendlyDiscord from './CalendlyDiscord';
9 | import SocialSync from './SocialSync';
10 | import PamphletDiscord from './PamphletDiscord';
11 |
12 | import { makeStyles } from '@mui/styles' ;
13 |
14 | const useStyles = makeStyles(() => ({
15 | root : {
16 | display : 'flex',
17 | alignItems : 'center',
18 | justifyContent : 'center',
19 |
20 | height : '100vh',
21 | },
22 | })) ;
23 |
24 | const Marketing = (props) => {
25 |
26 | const classes = useStyles();
27 | const navigate = useNavigate() ;
28 |
29 | const {
30 | } = props ;
31 |
32 | return (
33 |
34 |
35 | } />
36 | } />
37 | } />
38 | } />
39 | } />
40 | } />
41 |
42 |
43 | )
44 | }
45 |
46 | const mapStateToProps = state => ({
47 | })
48 | const mapDispatchToProps = {
49 | }
50 |
51 | export default connect(mapStateToProps, mapDispatchToProps)(Marketing) ;
52 |
53 |
--------------------------------------------------------------------------------
/src/pages/Landing/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react' ;
2 |
3 | import { connect } from 'react-redux' ;
4 |
5 | import Home from '../../components/Landing/Home';
6 | import SolsCloud from '../../components/Landing/SolsCloud';
7 | import Panel from '../../components/Landing/Panel';
8 | import Tracking from '../../components/Landing/Tracking';
9 | import SpaceShip from '../../components/Landing/SpaceShip';
10 | import BACKGROUND_IMAGE from '../../assets/background3.png';
11 |
12 | import {
13 | Box,
14 | } from '@mui/material' ;
15 |
16 | import { makeStyles } from '@mui/styles' ;
17 |
18 | const useStyles = makeStyles((theme) => ({
19 | root : {
20 | color : 'white',
21 | },
22 | background : {
23 | position : 'fixed',
24 | backgroundImage : `url(${BACKGROUND_IMAGE})`,
25 | backgroundSize : '100% 100%',
26 | zIndex : '-10000',
27 | height : '100vh',
28 | width : '100%'
29 | }
30 | })) ;
31 |
32 | const Landing = (props) => {
33 |
34 | const classes = useStyles();
35 |
36 | const {
37 |
38 | } = props ;
39 |
40 |
41 | return (
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 | )
51 | }
52 |
53 |
54 | const mapStateToProps = state => ({
55 |
56 | })
57 | const mapDispatchToProps = {
58 |
59 | }
60 |
61 | export default connect(mapStateToProps, mapDispatchToProps)(Landing) ;
62 |
63 |
--------------------------------------------------------------------------------
/src/redux/actions/notify.js:
--------------------------------------------------------------------------------
1 | import ActionTypes from './actionTypes' ;
2 |
3 | import { realDb } from '../../firebase/database' ;
4 | import { ref, onValue, push, child, update} from "firebase/database";
5 |
6 | export const FetchAllNotify = () => async dispatch =>{
7 | try {
8 | const starCountRef = ref(realDb, 'Web_Notify/');
9 |
10 | onValue(starCountRef, async (snapshot) => {
11 | const data = snapshot.val();
12 |
13 | await dispatch({
14 | type : ActionTypes.FetchAllNotify,
15 | payload : data || {}
16 | }) ;
17 | });
18 |
19 | return true ;
20 | } catch(err) {
21 | console.log(err) ;
22 | return false ;
23 | }
24 | }
25 |
26 | export const UpdateNotify = async (notify, notify_id) => {
27 | try {
28 |
29 | let updates = {} ;
30 | updates['Web_Notify/' + notify_id] = notify ;
31 |
32 | update(ref(realDb), updates) ;
33 |
34 | return true ;
35 | } catch(err) {
36 | console.log(err) ;
37 | return false ;
38 | }
39 | }
40 |
41 |
42 | export const WriteNotify = async (notify) => {
43 | try {
44 |
45 | // Get a key for a new Post.
46 | let newNotifyKey = push(child(ref(realDb), 'Web_Notify')).key;
47 |
48 | let updates = {} ;
49 | updates['Web_Notify/' + newNotifyKey] = notify ;
50 |
51 | update(ref(realDb), updates) ;
52 |
53 | return newNotifyKey ;
54 |
55 | } catch(err) {
56 | console.log(err) ;
57 | return false ;
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/src/components/Landing/Tracking/Social/TextField/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 |
3 | import CheckCircleIcon from '@mui/icons-material/CheckCircle';
4 |
5 | import {
6 | Box
7 | } from '@mui/material';
8 |
9 | import { makeStyles } from '@mui/styles';
10 |
11 | const useStyles = makeStyles((theme) => ({
12 | root : {
13 | background : 'white',
14 | color : 'black',
15 | borderRadius : '4px',
16 | marginTop : '20px',
17 | "& .MuiSvgIcon-root" : {
18 | color : '#1660CF'
19 | }
20 | },
21 | labelBox : {
22 | position : 'absolute',
23 | top : -10,
24 | left : 10,
25 | fontSize : '12px',
26 | paddingLeft : 20,
27 | paddingRight : 20,
28 | borderRadius : '4px',
29 | background : 'white',
30 | },
31 | mainContent : {
32 | position : 'relative',
33 | display : 'flex',
34 | justifyContent : 'space-between',
35 | alignItems : 'center',
36 | padding : '10px',
37 | }
38 | }))
39 |
40 | const TextField = (props) => {
41 |
42 | const {
43 | labelText,
44 | mainText
45 | } = props;
46 | const classes = useStyles();
47 |
48 | return (
49 |
50 |
51 |
52 | {labelText}
53 |
54 | {mainText}
55 |
56 |
57 |
58 | );
59 | }
60 |
61 | export default TextField;
--------------------------------------------------------------------------------
/src/pages/Solstice/CloudScreen/StylesDiv/CloudPlatform.styles.js:
--------------------------------------------------------------------------------
1 | import { makeStyles } from '@mui/styles';
2 |
3 | export const useStyles = makeStyles(() => ({
4 | root : {
5 | "& .MuiFormControl-root" : {
6 | borderRadius : 15,
7 | background : 'white',
8 |
9 | padding : '0px !important',
10 |
11 | "& svg" :{
12 | color : 'white'
13 | },
14 |
15 | marginBottom : 30,
16 | },
17 | '& .MuiOutlinedInput-root': {
18 | borderRadius : 15,
19 |
20 | padding : '0px !important',
21 |
22 |
23 | '& fieldset': {
24 | borderColor: '#C3C7E5 !important',
25 | },
26 | '&:hover fieldset': {
27 | borderColor: '#C3C7E5 !important',
28 | },
29 | '&.Mui-focused fieldset': {
30 | border : '1px solid #C3C7E5 !important'
31 | },
32 | },
33 | "& .MuiInputBase-input" :{
34 | color : 'black !important',
35 | },
36 | },
37 | createButtonCss : {
38 | borderTopRightRadius : '15px !important',
39 | borderBottomRightRadius : '15px !important',
40 |
41 | background : '#3772FF !important',
42 | textTransform : 'capitalize !important',
43 | width : 300,
44 | ['@media (max-width : 950px)'] : {
45 | width : 150
46 | },
47 | ['@media (max-width : 350px)'] : {
48 | width : 'auto'
49 | },
50 |
51 | border : '2px solid #3772FF !important'
52 | }
53 | })) ;
54 |
--------------------------------------------------------------------------------
/src/components/Auth/GoogleLogOutButton.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 |
3 | import { useNavigate } from 'react-router-dom';
4 |
5 | import { eraseCookie } from '../../utils/Helper';
6 |
7 | import GoogleImage from '../../assets/auth/Google.png' ;
8 |
9 | import {
10 | ListItemText,
11 | ListItemIcon,
12 | ListItemButton
13 | } from '@mui/material' ;
14 |
15 | const GoogleLogOutButton = (props) => {
16 | const navigate = useNavigate() ;
17 |
18 | const { open } = props ;
19 |
20 | // const onLogoutSuccess = (res) => {
21 | // eraseCookie('_SOLSTICE_AUTHUSER') ;
22 | // navigate('/auth') ;
23 | // };
24 |
25 | // const onFailure = () => {
26 | // console.log('Handle failure cases');
27 | // };
28 |
29 | // const { signOut } = useGoogleLogout({
30 | // clientId,
31 | // onLogoutSuccess,
32 | // onFailure,
33 | // });
34 |
35 | const handleSignOut = () => {
36 | eraseCookie('_SOLSTICE_AUTHUSER') ;
37 | navigate('/') ;
38 | }
39 |
40 | return (
41 |
50 |
57 |
58 |
59 |
60 |
61 | );
62 | }
63 |
64 | export default GoogleLogOutButton;
--------------------------------------------------------------------------------
/src/assets/socials/Reddit.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/src/pages/Solstice/UsersScreen/index.js:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 |
3 | import UsersList from '../../../components/Solstice/UserScreen/UsersList';
4 |
5 | import ManageSearchIcon from '@mui/icons-material/ManageSearch';
6 |
7 | import {
8 | Box,
9 | TextField,
10 | InputAdornment
11 | } from '@mui/material' ;
12 |
13 | import { useStyles } from './StylesDiv/index.styles.js';
14 |
15 | const UsersScreen = () => {
16 |
17 | const classes = useStyles() ;
18 |
19 | const [searchStr, setSearchStr] = React.useState('') ;
20 |
21 | return (
22 |
23 |
24 |
25 |
26 | SOLSTICE Customers
27 |
28 |
29 |
30 | setSearchStr(e.target.value)}
36 |
37 | InputProps={{
38 | startAdornment:
39 |
40 | ,
41 | }}
42 | />
43 |
44 |
45 |
48 |
49 | );
50 | }
51 |
52 | export default UsersScreen ;
--------------------------------------------------------------------------------
/src/pages/Solstice/SettingScreen/index.js:
--------------------------------------------------------------------------------
1 | import * as React from 'react' ;
2 |
3 | import {
4 | Box,
5 | Grid
6 | } from '@mui/material' ;
7 |
8 | import ConfigurePayment from '../../../components/Solstice/SettingScreen/ConfigurePayment';
9 | import ConnectWallet from '../../../components/Solstice/SettingScreen/ConnectWallet';
10 | import Branding from '../../../components/Solstice/SettingScreen/Branding';
11 | import CreateProducts from '../../../components/Solstice/SettingScreen/CreateProducts';
12 | import PurchaseLink from '../../../components/Solstice/SettingScreen/PurchaseLink';
13 |
14 | import { useStyles } from './StylesDiv/index.styles';
15 |
16 | const SettingScreen = () => {
17 | const classes = useStyles() ;
18 |
19 | return (
20 |
21 |
22 |
23 |
24 |
25 |
26 | Whenever you're ready...
27 |
28 |
29 | You're almost ready to start making money! Just a few more steps.
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 | )
42 | }
43 |
44 | export default SettingScreen ;
--------------------------------------------------------------------------------
/src/assets/socials/WhatsApp.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/src/components/Modals/StylesDiv/ConnectWalletModal.styles.js:
--------------------------------------------------------------------------------
1 | import { makeStyles } from '@mui/styles';
2 |
3 | export const useStyles = makeStyles((theme) => ({
4 | root : {
5 |
6 | },
7 | paper : {
8 | fontFamily : 'Bahnschrift SemiBold',
9 | padding : 20,
10 | ['@media (max-width: 435px)'] : {
11 | padding : 0,
12 | paddingTop : 10, paddingBottom : 10
13 | },
14 | backgroundColor : 'white !important',
15 | borderRadius : '15px !important',
16 | boxShadow : "7px 4px 20px 1px rgb(101 117 243 / 68%), 4px -7px 13px 5px rgb(101 117 243 / 68%), 7px 8px 20px 8px rgb(48 175 70 / 67%) !important",
17 |
18 | "& .MuiDialogTitle-root" : {
19 | color : 'white'
20 | },
21 | "& img" : {
22 | borderRadius : 10
23 | }
24 | },
25 | titleDiv : {
26 | fontSize : '30px', fontWeight : '500', fontWeight:'bold' ,
27 | ['@media (max-width: 435px)'] : {
28 | fontSize : 20
29 | },
30 | textAlign : 'center',
31 | lineHeight : '32px',
32 | },
33 | userInfoDiv : {
34 | background : "#DEDEDE",
35 | borderRadius : 20,
36 | fontSize : 20,
37 | display : 'flex',justifyContent : 'center',
38 | width : 150,
39 | padding : 5
40 | },
41 | descriptionDiv : {
42 | fontSize : 20,
43 | ['@media (max-width: 435px)'] : {
44 | fontSize : 15
45 | },
46 | textAlign : 'center',
47 | marginTop : '30px',
48 | },
49 | cancelButtonCss : {
50 | border : 'none !important',
51 | textTransform : 'capitalize !important',
52 | color : "#757575 !important", fontSize : '18px !important', fontWeight : 'bold !important'
53 | }
54 | })) ;
--------------------------------------------------------------------------------
/src/assets/menu/Setting.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/components/Common/PdfPreview.js:
--------------------------------------------------------------------------------
1 | import React,{ useEffect, useState } from 'react' ;
2 |
3 | // Core viewer
4 | import { Viewer, Worker } from '@react-pdf-viewer/core';
5 | import pdfjsWorker from "pdfjs-dist/build/pdf.worker.entry";
6 |
7 | // Import styles
8 | import '@react-pdf-viewer/core/lib/styles/index.css';
9 |
10 | import {
11 | Box,
12 | Avatar
13 | } from '@mui/material' ;
14 |
15 | import CloudUploadIcon from '@mui/icons-material/CloudUpload';
16 |
17 | import { makeStyles } from '@mui/styles';
18 |
19 | const useStyles = makeStyles(() => ({
20 | root : {
21 | display : 'flex',
22 | justifyContent : 'center',
23 |
24 | borderRadius : '10px !important',
25 |
26 | width : props => props.width ,
27 | height : props => props.height ,
28 | boxSizing : 'border-box',
29 |
30 | padding : 5,
31 |
32 | "& .MuiSvgIcon-root" : {
33 | marginRight : 10
34 | }
35 | }
36 | })) ;
37 |
38 | const PdfPreview = (props) => {
39 |
40 | // npm install pdfjs-dist@2.6.347
41 | // npm install react-pdf-viewer@3.1.2
42 | const {
43 | width,
44 | height
45 | } = props ;
46 |
47 | const classes = useStyles(props) ;
48 |
49 | const {
50 | previewUrl
51 | } = props ;
52 |
53 | return (
54 |
55 |
56 | {
57 | previewUrl ?
58 |
59 |
62 |
63 | : <>
64 | Upload WhitePaper.
65 | >
66 | }
67 |
68 |
69 | )
70 | }
71 |
72 | export default PdfPreview ;
--------------------------------------------------------------------------------
/src/components/Solstice/CartScreen/Bids/DateInput.js:
--------------------------------------------------------------------------------
1 | import React, { useState } from "react";
2 | import "@amir04lm26/react-modern-calendar-date-picker/lib/DatePicker.css";
3 | import DatePicker, {utils} from "@amir04lm26/react-modern-calendar-date-picker";
4 | import { convertObjToString } from "../../../../utils/Helper";
5 |
6 | import {
7 |
8 | } from '@mui/material' ;
9 |
10 | import { makeStyles } from "@mui/styles";
11 |
12 | const useStyles = makeStyles(() => ({
13 | root : {
14 |
15 | },
16 | inputDiv : {
17 | background : "#2A2B31 !important" ,
18 | textAlign: 'center',
19 | paddingTop: 10 , paddingBottom : 10,
20 | fontSize: '15px',
21 | border: '1px solid #2A2B31',
22 | boxShadow: '0 5px 5px #2A2B31',
23 | color: 'white',
24 | outline: 'none',
25 | width : '140px !important',
26 | }
27 | })) ;
28 | const DateInput = (props) => {
29 | const classes = useStyles() ;
30 |
31 | const {
32 | selectedDay,
33 | setSelectedDay,
34 | minimumDate
35 | } = props ;
36 |
37 | const renderCustomInput = ({ ref }) => (
38 |
45 | )
46 |
47 | return (
48 |
55 | );
56 | };
57 |
58 | export default DateInput;
--------------------------------------------------------------------------------
/src/components/Solstice/CartScreen/Orders/DateInput.js:
--------------------------------------------------------------------------------
1 | import React, { useState } from "react";
2 | import "@amir04lm26/react-modern-calendar-date-picker/lib/DatePicker.css";
3 | import DatePicker, {utils} from "@amir04lm26/react-modern-calendar-date-picker";
4 | import { convertObjToString } from "../../../../utils/Helper";
5 |
6 | import {
7 |
8 | } from '@mui/material' ;
9 |
10 | import { makeStyles } from "@mui/styles";
11 |
12 | const useStyles = makeStyles(() => ({
13 | root : {
14 |
15 | },
16 | inputDiv : {
17 | background : "#2A2B31 !important" ,
18 | textAlign: 'center',
19 | paddingTop: 10 , paddingBottom : 10,
20 | fontSize: '15px',
21 | border: '1px solid #2A2B31',
22 | boxShadow: '0 5px 5px #2A2B31',
23 | color: 'white',
24 | outline: 'none',
25 | width : '140px !important',
26 | }
27 | })) ;
28 | const DateInput = (props) => {
29 | const classes = useStyles() ;
30 |
31 | const {
32 | selectedDay,
33 | setSelectedDay,
34 | minimumDate
35 | } = props ;
36 |
37 | const renderCustomInput = ({ ref }) => (
38 |
45 | )
46 |
47 | return (
48 |
55 | );
56 | };
57 |
58 | export default DateInput;
--------------------------------------------------------------------------------
/src/components/Common/CommingSoon.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 |
3 |
4 | import {
5 | Box
6 | } from '@mui/material';
7 |
8 | import {makeStyles} from '@mui/styles' ;
9 |
10 | const useStyles = makeStyles((theme) => ({
11 | root : {
12 | width : '100%' , height : '100vh',
13 | display : 'flex', alignItems : 'center', justifyContent : 'center',
14 | color: theme.palette.green.A200,
15 | overflow : 'hidden'
16 | },
17 | soonPanelDiv : {
18 | display : 'flex', flexDirection : 'column', alignItems : 'center', justifyContent : 'center',
19 | border : '2px solid ' + theme.palette.blue.A100,
20 |
21 | background : theme.palette.blue.A200,
22 | height : 300, minWidth : 500,
23 | padding : 20,
24 | borderRadius : 20,
25 | boxShadow : '0 0 20px #eee !important',
26 |
27 | animation: `$soon-panel-animation 1000ms ease-in-out running` ,
28 | },
29 | soonDiv : {
30 | fontSize : 40,
31 | fontWeight : 600,
32 | marginBottom : 10,
33 | },
34 | updateDiv : {
35 | marginTop : 10,
36 | fontSize : 20
37 | },
38 | "@keyframes soon-panel-animation" : {
39 | "0%" : {
40 | marginLeft : '100%',
41 | },
42 | "50%" : {
43 | marginLeft : '-20%',
44 | },
45 | "100%" : {
46 |
47 | }
48 | },
49 | }))
50 |
51 | const CommingSoon = () => {
52 | const classes = useStyles();
53 |
54 | return(
55 |
56 |
57 | Coming Soon
58 | We're launching soon, follow us for update...
59 |
60 |
61 | );
62 | }
63 |
64 | export default CommingSoon;
--------------------------------------------------------------------------------
/src/assets/Discord.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/assets/profile/product_details.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/pages/Solstice/CartScreen/StylesDiv/ProductBids.styles.js:
--------------------------------------------------------------------------------
1 | import { makeStyles } from '@mui/styles';
2 |
3 | export const useStyles = makeStyles((theme) => ({
4 | root : {
5 | minHeight : 500,
6 | "& .MuiFormControl-root" : {
7 | borderRadius : 5, background: '#2A2B31 !important',
8 | paddingTop : 10, paddingBottom : 10,
9 | boxShadow: '0 5px 5px #2A2B31',
10 | color : '#43D9AD',
11 | "& svg" :{
12 | color : 'white'
13 | },
14 | },
15 | '& .MuiOutlinedInput-root': {
16 | minWidth : '100px !important',
17 | '& fieldset': {
18 | borderColor: '#2A2B31 !important',
19 | },
20 | '&:hover fieldset': {
21 | borderColor: '#2A2B31 !important',
22 | },
23 | '&.Mui-focused fieldset': {
24 | border : '1px solid #2A2B31 !important'
25 | },
26 | },
27 | "& .MuiInputBase-input" :{
28 | padding : 0,
29 | color : 'white !important',
30 | },
31 | },
32 | createButtonCss : {
33 | borderTopRightRadius : '15px !important',
34 | borderBottomRightRadius : '15px !important',
35 |
36 | background : '#3772FF !important',
37 | textTransform : 'capitalize !important',
38 | width : 300,
39 |
40 | border : '2px solid #3772FF !important'
41 | },
42 | searchDiv : {
43 | color : theme.palette.green.A200,
44 | display : 'flex', justifyContent : 'center' , alignItems : 'center', gap : '20px',
45 | padding : 10, paddingLeft : 10, paddingRight : 10,
46 | marginBottom : 20,
47 | borderRadius : theme.border.borderRadius.tiny,
48 | width : 500
49 | },
50 | calendarDiv : {
51 | color : theme.palette.green.A200,
52 | display : 'flex', justifyContent : 'center' , alignItems : 'center', gap : '20px',
53 | padding : 10, paddingLeft : 10, paddingRight : 10,
54 | marginBottom : 20,
55 | borderRadius : theme.border.borderRadius.tiny,
56 | width : 450
57 | },
58 | })) ;
--------------------------------------------------------------------------------
/src/pages/Solstice/CartScreen/StylesDiv/ProductsTx.styles.js:
--------------------------------------------------------------------------------
1 | import { makeStyles} from '@mui/styles';
2 |
3 | export const useStyles = makeStyles((theme) => ({
4 | root : {
5 | minHeight : 500,
6 | "& .MuiFormControl-root" : {
7 | borderRadius : 5, background: '#2A2B31 !important',
8 | paddingTop : 10, paddingBottom : 10,
9 | boxShadow: '0 5px 5px #2A2B31',
10 | color : '#43D9AD',
11 | "& svg" :{
12 | color : 'white'
13 | },
14 | },
15 | '& .MuiOutlinedInput-root': {
16 | minWidth : '100px !important',
17 | '& fieldset': {
18 | borderColor: '#2A2B31 !important',
19 | },
20 | '&:hover fieldset': {
21 | borderColor: '#2A2B31 !important',
22 | },
23 | '&.Mui-focused fieldset': {
24 | border : '1px solid #2A2B31 !important'
25 | },
26 | },
27 | "& .MuiInputBase-input" :{
28 | padding : 0,
29 | color : 'white !important',
30 | },
31 | },
32 | createButtonCss : {
33 | borderTopRightRadius : '15px !important',
34 | borderBottomRightRadius : '15px !important',
35 |
36 | background : '#3772FF !important',
37 | textTransform : 'capitalize !important',
38 | width : 300,
39 |
40 | border : '2px solid #3772FF !important'
41 | },
42 | searchDiv : {
43 | color : theme.palette.green.A200,
44 | display : 'flex', justifyContent : 'center' , alignItems : 'center', gap : '20px',
45 | padding : 10, paddingLeft : 10, paddingRight : 10,
46 | marginBottom : 20,
47 | borderRadius : theme.border.borderRadius.tiny,
48 | width : 500
49 | },
50 | calendarDiv : {
51 | color : theme.palette.green.A200,
52 | display : 'flex', justifyContent : 'center' , alignItems : 'center', gap : '20px',
53 | padding : 10, paddingLeft : 10, paddingRight : 10,
54 | marginBottom : 20,
55 | borderRadius : theme.border.borderRadius.tiny,
56 | width : 450
57 | },
58 | })) ;
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | lerna-debug.log*
8 |
9 | # Diagnostic reports (https://nodejs.org/api/report.html)
10 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
11 |
12 | # Runtime data
13 | pids
14 | *.pid
15 | *.seed
16 | *.pid.lock
17 |
18 | # Directory for instrumented libs generated by jscoverage/JSCover
19 | lib-cov
20 |
21 | # Coverage directory used by tools like istanbul
22 | coverage
23 | *.lcov
24 |
25 | # nyc test coverage
26 | .nyc_output
27 |
28 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
29 | .grunt
30 |
31 | # Bower dependency directory (https://bower.io/)
32 | bower_components
33 |
34 | # node-waf configuration
35 | .lock-wscript
36 |
37 | # Compiled binary addons (https://nodejs.org/api/addons.html)
38 | build/Release
39 |
40 | # Dependency directories
41 | node_modules/
42 | jspm_packages/
43 | build/
44 |
45 | # TypeScript v1 declaration files
46 | typings/
47 |
48 | # TypeScript cache
49 | *.tsbuildinfo
50 |
51 | # Optional npm cache directory
52 | .npm
53 |
54 | # Optional eslint cache
55 | .eslintcache
56 |
57 | # Microbundle cache
58 | .rpt2_cache/
59 | .rts2_cache_cjs/
60 | .rts2_cache_es/
61 | .rts2_cache_umd/
62 |
63 | # Optional REPL history
64 | .node_repl_history
65 |
66 | # Output of 'npm pack'
67 | *.tgz
68 |
69 | # Yarn Integrity file
70 | .yarn-integrity
71 |
72 | # dotenv environment variables file
73 | .env
74 | .env.test
75 |
76 | # parcel-bundler cache (https://parceljs.org/)
77 | .cache
78 |
79 | # Next.js build output
80 | .next
81 |
82 | # Nuxt.js build / generate output
83 | .nuxt
84 | dist
85 |
86 | # Gatsby files
87 | .cache/
88 | # Comment in the public line in if your project uses Gatsby and *not* Next.js
89 | # https://nextjs.org/blog/next-9-1#public-directory-support
90 | # public
91 |
92 | # vuepress build output
93 | .vuepress/dist
94 |
95 | # Serverless directories
96 | .serverless/
97 |
98 | # FuseBox cache
99 | .fusebox/
100 |
101 | # DynamoDB Local files
102 | .dynamodb/
103 |
104 | # TernJS port file
105 | .tern-port
106 |
--------------------------------------------------------------------------------
/src/assets/menu/3-User.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/assets/menu/Wallet.svg:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/src/pages/Solstice/CloudScreen/StylesDiv/index.styles.js:
--------------------------------------------------------------------------------
1 | import {makeStyles} from '@mui/styles';
2 |
3 | export const useStyles = makeStyles(() => ({
4 | root : {
5 | backgroundColor : "#011627",
6 | minHeight : '100vh',
7 | position : 'relative',
8 |
9 | '& .MuiTabs-indicator': {
10 | display: 'flex',
11 | justifyContent: 'center',
12 | backgroundColor: 'transparent',
13 |
14 | border :'1px solid #43D9AD'
15 | },
16 |
17 | "& .MuiTab-root" : {
18 | color : 'white',
19 | textTransform : 'capitalize',
20 | fontFamily : 'Montserrat',
21 | fontSize : 15,
22 | },
23 |
24 | '& .Mui-selected': {
25 | color: '#43D9AD !important',
26 | },
27 | },
28 | buttonCss : {
29 | background : 'white !important',
30 | color : '#2196F3 !important',
31 | textTransform :'capitalize !important',
32 | fontWeight : 'bold !important',
33 |
34 | marginRight : '10px !important'
35 | },
36 | greenBlur : {
37 | position : 'absolute',
38 | width: 200,
39 | height: 150,
40 | left: 45,
41 | top: 170,
42 |
43 | background: '#43D9AD',
44 | opacity: '0.35',
45 | filter: 'blur(55px)',
46 | transform: 'rotate(-140.38deg)'
47 | },
48 | blueBlur : {
49 | position : 'absolute',
50 | width: 200,
51 | height: 150,
52 | right: 45,
53 | top: 400,
54 |
55 | background: '#4D5BCE',
56 | opacity: '0.35',
57 | filter: 'blur(55px)',
58 | transform: 'rotate(-140.38deg)'
59 | },
60 | tabDiv : {
61 | padding: '20px', paddingBottom : '10px',
62 | display : 'flex', justifyContent : 'space-between', alignItems : 'center',
63 | ['@media (max-width : 890px)'] : {
64 | flexDirection : 'column',
65 | alignItems : 'flex-start'
66 | }
67 | },
68 | buttonGroup : {
69 | ['@media (max-width : 890px)'] : {
70 | marginTop : '20px',
71 | "& .MuiButtonBase-root" : {
72 | marginTop : '10px'
73 | }
74 | }
75 | }
76 | }));
--------------------------------------------------------------------------------
/src/assets/menu/Cloud.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/pages/Solstice/CloudScreen/CloudPlatform.js:
--------------------------------------------------------------------------------
1 | import * as React from 'react' ;
2 |
3 | import Socials from '../../../components/Solstice/CloudScreen/CloudPlatform/Socials';
4 |
5 | import {
6 | Box,
7 | TextField,
8 | InputAdornment,
9 | Button ,
10 | Grid
11 | } from '@mui/material' ;
12 |
13 | import { useStyles } from './StylesDiv/CloudPlatform.styles';
14 |
15 | const CloudPlatform = () => {
16 |
17 | const classes = useStyles() ;
18 |
19 | const [curCategory, setCategory] = React.useState("Socials") ;
20 |
21 | const categoryList = [
22 | "Socials",
23 | "Payment and Checkout",
24 | "Messaging and Communication",
25 | "Developer Platform",
26 | "Marketplaces"
27 | ];
28 |
29 | return (
30 |
31 |
32 |
33 | Categories:
34 |
35 | {
36 | categoryList.map((item, index) => {
37 | return (
38 | setCategory(item)}>
39 | { item }
40 |
41 | )
42 | })
43 | }
44 |
45 |
51 |
54 |
55 | }}
56 | />
57 |
58 |
59 |
60 |
61 |
62 |
63 | )
64 | }
65 |
66 | export default CloudPlatform ;
--------------------------------------------------------------------------------
/src/pages/Solstice/StylesDiv/Notifications.styles.js:
--------------------------------------------------------------------------------
1 | import { makeStyles } from "@mui/styles";
2 |
3 | export const useStyles = makeStyles((theme) => ({
4 | rootExpand : {
5 | position : 'fixed',
6 | zIndex : 4000,
7 |
8 | width : 270,
9 | height : '100vh',
10 |
11 | background : '#366059',
12 |
13 | top : 0, right : 0,
14 |
15 | height: '100vh',
16 |
17 | border : '2px solid #42e189', borderRadius : 10,
18 | paddingTop : 20,
19 |
20 | animation: `$root-expand-animation 1000ms ease-in-out running`
21 | },
22 | rootLess : {
23 | position : 'fixed',
24 | zIndex : 4000,
25 |
26 | width : 270,
27 | height : '100vh',
28 |
29 | background : '#366059',
30 |
31 | top : 0, right : -270,
32 |
33 | height: '100vh',
34 |
35 | border : '2px solid #42e189', borderRadius : 10,
36 | paddingTop : 20,
37 |
38 | animation : `$root-less-animation 1000ms ease-in-out running`
39 | },
40 | notifyDiv : {
41 | position : 'relative',
42 | cursor : 'pointer',
43 | margin : 5,
44 | marginBottom : 10,
45 | border : '1px solid #aacfa4', borderRadius : 10,
46 | display : 'flex', gap : 15,
47 | fontSize : 15,
48 | color : '#b0e1a9',
49 |
50 | padding : 5,
51 | paddingRight : 20,
52 | background : '#314e2f',
53 |
54 | // "&:hover" : {
55 | // background : '#5e895b'
56 | // }
57 | },
58 | closeDiv : {
59 | position : 'absolute',
60 | top : 5, right : 5,
61 |
62 | width : 17, height : 17,
63 | background : '#cfb3b3e0',
64 | "&:hover" : {
65 | background : "#cd6565e0"
66 | },
67 | borderRadius : '50%',
68 |
69 | display : 'flex', alignItems : 'center', justifyContent : 'center'
70 | },
71 | "@keyframes root-expand-animation" : {
72 | "0%" : {
73 | right : -270 ,
74 | },
75 | "100%" : {
76 | right : 0
77 | }
78 | },
79 | "@keyframes root-less-animation" : {
80 | "0%" : {
81 | right : 0 ,
82 | },
83 | "100%" : {
84 | right : -270
85 | }
86 | },
87 | })) ;
--------------------------------------------------------------------------------
/src/pages/Solstice/CartScreen/StylesDiv/ProductOrders.styles.js:
--------------------------------------------------------------------------------
1 | import { makeStyles } from '@mui/styles';
2 |
3 | export const useStyles = makeStyles((theme) => ({
4 | root : {
5 | minHeight : 500,
6 | "& .MuiFormControl-root" : {
7 | borderRadius : 5, background: '#2A2B31 !important',
8 | paddingTop : 10, paddingBottom : 10,
9 | boxShadow: '0 5px 5px #2A2B31',
10 | color : '#43D9AD',
11 | "& svg" :{
12 | color : 'white'
13 | },
14 | },
15 | '& .MuiOutlinedInput-root': {
16 | minWidth : '100px !important',
17 | '& fieldset': {
18 | borderColor: '#2A2B31 !important',
19 | },
20 | '&:hover fieldset': {
21 | borderColor: '#2A2B31 !important',
22 | },
23 | '&.Mui-focused fieldset': {
24 | border : '1px solid #2A2B31 !important'
25 | },
26 | },
27 | "& .MuiInputBase-input" :{
28 | padding : 0,
29 | color : 'white !important',
30 | },
31 | },
32 | createButtonCss : {
33 | borderTopRightRadius : '15px !important',
34 | borderBottomRightRadius : '15px !important',
35 |
36 | background : '#3772FF !important',
37 | textTransform : 'capitalize !important',
38 | width : 300,
39 |
40 | border : '2px solid #3772FF !important'
41 | },
42 | searchDiv : {
43 | color : theme.palette.green.A200,
44 | display : 'flex', justifyContent : 'center' , alignItems : 'center', gap : '20px',
45 | padding : 10, paddingLeft : 10, paddingRight : 10,
46 | marginBottom : 20,
47 | borderRadius : theme.border.borderRadius.tiny,
48 | width : 500
49 | },
50 | calendarDiv : {
51 | color : theme.palette.green.A200,
52 | display : 'flex', justifyContent : 'center' , alignItems : 'center', gap : '20px',
53 | ['@media (max-width : 595px)'] : {
54 | flexDirection : 'column',
55 | alignItems : 'flex-start'
56 | },
57 | padding : 10, paddingLeft : 10, paddingRight : 10,
58 | marginBottom : 20,
59 | borderRadius : theme.border.borderRadius.tiny,
60 | width : 450
61 | },
62 | })) ;
--------------------------------------------------------------------------------
/src/pages/Auth/index.js:
--------------------------------------------------------------------------------
1 | import * as React from 'react' ;
2 |
3 | import { connect } from 'react-redux' ;
4 |
5 | import SignInForm from './SignInForm.js';
6 | import SignUpForm from './SignUpForm.js';
7 | import AccountForm from './AccountForm.js';
8 | import SocialAndEmailForm from './SocialAndEmailForm.js';
9 | import ImageSetForm from './ImageSetForm.js';
10 | import ForgotForm from './ForgotForm.js';
11 |
12 | const Auth = (props) => {
13 |
14 | const {
15 | isLogin
16 | } = props ;
17 |
18 | const [authStep, setAuthStep] = React.useState('signin') ;
19 |
20 | const handleChangeAuthStep = (step) => {
21 | setAuthStep(step) ;
22 | }
23 |
24 | React.useEffect(() => {
25 | if(isLogin) {
26 | }
27 | }, [isLogin]);
28 |
29 |
30 | React.useEffect(() => {
31 | return () => {
32 | // InitAuthReducer() ;
33 | }
34 | }, []) ;
35 |
36 | return (
37 | <>
38 | {
39 | authStep === 'forgot' &&
42 | }
43 | {
44 | authStep === 'signin' &&
47 | }
48 | {
49 | authStep === 'signup' &&
52 | }
53 | {
54 | authStep === 'account' &&
57 | }
58 | {
59 | authStep === 'social' &&
62 | }
63 | {
64 | authStep === 'imageset' &&
67 | }
68 | >
69 | )
70 | }
71 |
72 | const mapStateToProps = state => ({
73 | isLogin : state.auth.isLogin
74 | })
75 | const mapDispatchToProps = {
76 |
77 | }
78 |
79 | export default connect(mapStateToProps, mapDispatchToProps)(Auth) ;
80 |
81 |
--------------------------------------------------------------------------------
/src/redux/reducers/profile.js:
--------------------------------------------------------------------------------
1 | import ActionTypes from "../actions/actionTypes";
2 |
3 | const INITIAL_STATE = {
4 | loadingProductsList : false,
5 |
6 | accountName : null,
7 | fullName : null,
8 |
9 | coverPictureUrl : null,
10 | profilePictureUrl : null,
11 |
12 | productTypeList : [],
13 | jobTag : null,
14 |
15 | productCount : 0,
16 | platformCount : 0,
17 | resellerCount : 0,
18 |
19 | joinedDate : null,
20 | hostId : null,
21 | profileMessage : '',
22 |
23 | nftsList : [] ,
24 | productsList : []
25 | }
26 |
27 | export default function profile(state=INITIAL_STATE, action={}){
28 | switch(action.type) {
29 | case ActionTypes.UserAccountInfo :
30 | return ({
31 | ...state,
32 | coverPictureUrl : action.payload.coverPictureUrl,
33 | profilePictureUrl : action.payload.profilePictureUrl,
34 |
35 | productTypeList : action.payload.productTypeList,
36 | jobTag : action.payload.jobTag,
37 |
38 | accountName : action.payload.accountName,
39 | fullName : action.payload.fullName,
40 |
41 | productCount : action.payload.productCount,
42 | platformCount : action.payload.platformCount,
43 | resellerCount : action.payload.resellerCount,
44 |
45 | joinedDate : action.payload.joinedDate,
46 | hostId : action.payload.hostId,
47 | profileMessage : action.payload.profileMessage
48 | }) ;
49 | case ActionTypes.UpdateProfileMessage :
50 | return ({
51 | ...state,
52 | profileMessage : action.payload
53 | }) ;
54 | case ActionTypes.LoadingProductsList :
55 | return ({
56 | ...state,
57 | loadingProductsList : action.payload
58 | }) ;
59 | case ActionTypes.UserAllNFTs:
60 | return ({
61 | ...state,
62 | nftsList : action.payload
63 | }) ;
64 | case ActionTypes.UserAllProducts :
65 | return ({
66 | ...state,
67 | productsList : action.payload
68 | })
69 | default :
70 | return state ;
71 | }
72 | }
--------------------------------------------------------------------------------
/src/pages/Solstice/SettingScreen/StylesDiv/index.styles.js:
--------------------------------------------------------------------------------
1 | import { makeStyles } from "@mui/styles";
2 |
3 | export const useStyles = makeStyles((theme) => ({
4 | root : {
5 | backgroundColor : "#011627",
6 | minHeight : '100vh',
7 | position : 'relative',
8 | color : theme.palette.green.A200,
9 | padding : 70,
10 | ['@media (max-width : 880px)'] : {
11 | padding : 30
12 | },
13 | ['@media (max-width : 370px)'] : {
14 | padding : 10
15 | },
16 | },
17 | buttonCss : {
18 | background : 'white !important',
19 | color : '#2196F3 !important',
20 | textTransform :'capitalize !important',
21 | fontWeight : 'bold !important',
22 |
23 | marginRight : '10px !important'
24 | },
25 | greenBlur : {
26 | position : 'absolute',
27 | width: 200,
28 | height: 150,
29 | left: 45,
30 | top: 170,
31 |
32 | background: '#43D9AD',
33 | opacity: '0.35',
34 | filter: 'blur(55px)',
35 | transform: 'rotate(-140.38deg)'
36 | },
37 | blueBlur : {
38 | position : 'absolute', right: 45, top: 400,
39 | width: 200, height: 150,
40 | background: '#4D5BCE',
41 | opacity: '0.35',
42 | filter: 'blur(55px)',
43 | transform: 'rotate(-140.38deg)'
44 | },
45 | titleDiv : {
46 | fontSize : 40, fontWeight : 'bold',
47 | ['@media (max-width : 820px)'] : {
48 | fontSize : 30
49 | },
50 | ['@media (max-width : 700px)'] : {
51 | fontSize : 25
52 | },
53 | ['@media (max-width : 610px)'] : {
54 | fontSize : 20,
55 | },
56 | ['@media (max-width : 535px)'] : {
57 | fontSize : 30,
58 | marginTop : 20
59 | },
60 | ['@media (max-width : 430px)'] : {
61 | fontSize : 25,
62 | marginTop : 20
63 | },
64 | ['@media (max-width : 320px)'] : {
65 | fontSize : 20,
66 | marginTop : 20
67 | }
68 | },
69 | descriptionDiv : {
70 | fontSize : 20,
71 | color : theme.palette.green.A100,
72 | ['@media (max-width : 820px)'] : {
73 | fontSize : 15
74 | },
75 | ['@media (max-width : 610px)'] : {
76 | fontSize : 18,
77 | },
78 | ['@media (max-width : 330px)'] : {
79 | fontSize : 15,
80 | }
81 | }
82 | }))
83 |
84 |
--------------------------------------------------------------------------------
/src/components/Common/NotFound.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 |
3 | import {
4 | Box,
5 | Grid
6 | } from '@mui/material' ;
7 |
8 | import { makeStyles } from '@mui/styles' ;
9 |
10 | const useStyles = makeStyles((theme) => ({
11 | root : {
12 | display : "flex" , alignItems : 'center', justifyContent : 'center', flexDirection : 'column',
13 | background : theme.palette.blue.main,
14 | width : '100%', height : '100vh',
15 | "& .MuiGrid-item" : {
16 | textAlign : 'center',
17 | fontSize : '20px'
18 | }
19 | },
20 | site : {
21 | fontSize : 40,
22 | paddingBottom : '15px',
23 | color : theme.palette.green.A200,
24 | letterSpacing : 10
25 | },
26 | panel : {
27 | backgroundColor : theme.palette.blue.A200,
28 | width : 370,
29 | padding : 20,
30 | borderRadius : 5,
31 | display : 'flex', alignItems:'center', justifyContent : 'center', flexDirection : 'column',
32 | color : theme.palette.green.A200
33 | },
34 | error : {
35 | fontSize : '25px !important',
36 | fontWeight : 'bold',
37 | color : '#cd2424'
38 | },
39 | contactDiv : {
40 | color :theme.palette.green.A200,
41 | fontSize : 20,
42 | marginTop : 20,
43 | "& a" : {
44 | color : theme.palette.blue.A100,
45 | "&:hover" : {
46 | color :'white'
47 | }
48 | }
49 | }
50 | }))
51 | const NotFound = () => {
52 | const classes = useStyles() ;
53 | return (
54 |
55 |
56 | SOLSTICE
57 |
58 |
59 |
60 |
61 | Page Not Found
62 |
63 |
64 | Sorry, we couldn't find the page.
65 |
66 |
67 | Please check the URL and try again.
68 |
69 |
70 | (Error code 404)
71 |
72 |
73 |
74 |
75 | © Solstice 2022 | Contact Support
76 |
77 |
78 | );
79 | }
80 |
81 | NotFound.propTypes = {
82 |
83 | };
84 |
85 | export default NotFound;
86 |
--------------------------------------------------------------------------------
/src/assets/paycards/Discover.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/src/pages/Solstice/UsersScreen/StylesDiv/index.styles.js:
--------------------------------------------------------------------------------
1 | import {makeStyles} from '@mui/styles';
2 |
3 | export const useStyles = makeStyles((theme) => ({
4 | root : {
5 | backgroundColor : "#011627",
6 | minHeight : '100vh',
7 | position : 'relative',
8 | },
9 | greenBlur : {
10 | position : 'absolute',
11 | width: 200,
12 | height: 150,
13 | left: 45,
14 | top: 170,
15 |
16 | background: '#43D9AD',
17 | opacity: '0.35',
18 | filter: 'blur(55px)',
19 | transform: 'rotate(-140.38deg)'
20 | },
21 | blueBlur : {
22 | position : 'absolute',
23 | width: 200,
24 | height: 150,
25 | right: 45,
26 | top: 400,
27 |
28 | background: '#4D5BCE',
29 | opacity: '0.35',
30 | filter: 'blur(55px)',
31 | transform: 'rotate(-140.38deg)'
32 | },
33 | pageTitleDiv : {
34 | paddingLeft : 30,
35 | paddingTop : 30,
36 | paddingBottom : 10,
37 | color : theme.palette.green.A200, fontSize : 35, fontWeight : 'bold',
38 |
39 | borderBottom : '1px solid gray'
40 | },
41 | searchDiv : {
42 | color : theme.palette.green.A200,
43 | display : 'flex', justifyContent : 'center' , alignItems : 'center', gap : '20px',
44 | background : theme.palette.blue.A200,
45 | padding : 10, paddingLeft : 10, paddingRight : 10,
46 | marginBottom : 20,
47 | marginLeft : 30, marginTop : 20,
48 | borderRadius : theme.border.borderRadius.tiny,
49 | width : 400 ,
50 |
51 | "& svg" : {
52 | color : theme.palette.green.A200 + " !important"
53 | },
54 |
55 | ['@media (max-width: 800px)'] : {
56 | flexDirection : 'column !important',
57 | alignItems : 'flex-start',
58 | width : '100%'
59 | },
60 |
61 | "& .MuiFormControl-root" : {
62 | borderRadius : 5,
63 | color : '#43D9AD',
64 | "& svg" :{
65 | color : 'white'
66 | },
67 | },
68 | "& .MuiInputBase-input" :{
69 | color : '#43D9AD !important',
70 | },
71 |
72 | '& .MuiOutlinedInput-root': {
73 | minWidth : '100px !important',
74 | '& fieldset': {
75 | border: "1px solid " + theme.palette.blue.A200 + ' !important',
76 | },
77 | '&:hover fieldset': {
78 | border: "1px solid " + theme.palette.blue.A100 + ' !important',
79 | },
80 | '&.Mui-focused fieldset': {
81 | border : "1px solid " + theme.palette.blue.A100 + ' !important'
82 | },
83 | },
84 | },
85 | }));
--------------------------------------------------------------------------------
/src/components/Solstice/SettingScreen/Branding.js:
--------------------------------------------------------------------------------
1 | import * as React from 'react' ;
2 |
3 | import { useWalletInfo } from '../../../contexts/WalletContext' ;
4 |
5 | import {connect} from 'react-redux' ;
6 | import { ExpandedItem } from '../../../redux/actions/setting';
7 | import PropTypes from 'prop-types' ;
8 |
9 | import ExpandMoreIcon from '@mui/icons-material/ExpandMore' ;
10 |
11 | import {
12 | Box ,
13 | Accordion,
14 | AccordionSummary,
15 | AccordionDetails,
16 | Button
17 | } from '@mui/material' ;
18 |
19 | import { useStyles } from './StylesDiv/Branding.styles';
20 | import { useTheme } from '@mui/material' ;
21 |
22 | const Branding = (props) => {
23 | const classes = useStyles() ;
24 | const theme = useTheme() ;
25 |
26 | const [expand, setExpand] = React.useState(false) ;
27 |
28 | const {
29 | ExpandedItem,
30 | expandedItem
31 | } = props ;
32 |
33 | const {
34 | provider ,
35 | web3Provider,
36 | walletAddress,
37 | chainData,
38 | isConnected,
39 | } = useWalletInfo() ;
40 |
41 | const TriggerExpandedItem = (e, expanded, itemIndex) => {
42 | ExpandedItem(itemIndex) ;
43 | setExpand(expanded) ;
44 | }
45 |
46 | React.useEffect(() => {
47 | if(expandedItem !== 2){
48 | setExpand(false) ;
49 | }
50 | }, [expandedItem]) ;
51 |
52 | return (
53 |
54 | TriggerExpandedItem(e, expanded, 2)}
57 | >
58 | }
60 | sx={{backgroundColor : 'rgba(51, 139, 239, 0.21) !important'}}
61 | >
62 |
63 | Customize branding
64 |
65 |
66 |
69 |
70 | Comming Soon...
71 |
72 |
73 |
74 |
75 |
76 | )
77 | }
78 | Branding.propTypes = {
79 | ExpandedItem : PropTypes.func.isRequired
80 | }
81 | const mapStateToProps = state => ({
82 | expandedItem : state.setting.expandedItem
83 | })
84 | const mapDispatchToProps = {
85 | ExpandedItem
86 | }
87 | export default connect(mapStateToProps, mapDispatchToProps)(Branding) ;
--------------------------------------------------------------------------------
/src/components/Solstice/SettingScreen/CreateProducts.js:
--------------------------------------------------------------------------------
1 | import * as React from 'react' ;
2 |
3 | import { useWalletInfo } from '../../../contexts/WalletContext' ;
4 |
5 | import {connect} from 'react-redux' ;
6 | import { ExpandedItem } from '../../../redux/actions/setting';
7 | import PropTypes from 'prop-types' ;
8 | import ExpandMoreIcon from '@mui/icons-material/ExpandMore' ;
9 |
10 | import {
11 | Box ,
12 | Accordion,
13 | AccordionSummary,
14 | AccordionDetails,
15 | Button
16 | } from '@mui/material' ;
17 |
18 | import { useStyles } from './StylesDiv/CreateProducts.styles';
19 | import { useTheme } from '@mui/material' ;
20 |
21 | const CreateProducts = (props) => {
22 | const classes = useStyles() ;
23 | const theme = useTheme() ;
24 |
25 | const [expand, setExpand] = React.useState(false) ;
26 |
27 | const {
28 | ExpandedItem,
29 | expandedItem
30 | } = props ;
31 |
32 | const {
33 | provider ,
34 | web3Provider,
35 | walletAddress,
36 | chainData,
37 | isConnected,
38 | } = useWalletInfo() ;
39 |
40 | const TriggerExpandedItem = (e, expanded, itemIndex) => {
41 | ExpandedItem(itemIndex) ;
42 | setExpand(expanded) ;
43 | }
44 |
45 | React.useEffect(() => {
46 | if(expandedItem !== 3){
47 | setExpand(false) ;
48 | }
49 | }, [expandedItem]) ;
50 |
51 | return (
52 |
53 | TriggerExpandedItem(e, expanded, 3)}
56 | >
57 | }
59 | sx={{backgroundColor : 'rgba(51, 139, 239, 0.21) !important'}}
60 | >
61 |
62 | Create products
63 |
64 |
65 |
68 |
69 | Comming Soon...
70 |
71 |
72 |
73 |
74 |
75 | )
76 | }
77 | CreateProducts.propTypes = {
78 | ExpandedItem : PropTypes.func.isRequired
79 | }
80 | const mapStateToProps = state => ({
81 | expandedItem : state.setting.expandedItem
82 | })
83 | const mapDispatchToProps = {
84 | ExpandedItem
85 | }
86 | export default connect(mapStateToProps, mapDispatchToProps)(CreateProducts) ;
--------------------------------------------------------------------------------
/src/components/Solstice/SettingScreen/PurchaseLink.js:
--------------------------------------------------------------------------------
1 | import * as React from 'react' ;
2 |
3 | import { useWalletInfo } from '../../../contexts/WalletContext' ;
4 |
5 | import {connect} from 'react-redux' ;
6 | import { ExpandedItem } from '../../../redux/actions/setting';
7 | import PropTypes from 'prop-types' ;
8 |
9 | import ExpandMoreIcon from '@mui/icons-material/ExpandMore' ;
10 |
11 | import {
12 | Box ,
13 | Accordion,
14 | AccordionSummary,
15 | AccordionDetails,
16 | Button
17 | } from '@mui/material' ;
18 |
19 | import { useStyles } from './StylesDiv/PurchaseLink.styles';
20 | import { useTheme } from '@mui/material' ;
21 |
22 | const PurchaseLink = (props) => {
23 | const classes = useStyles() ;
24 | const theme = useTheme() ;
25 |
26 | const [expand, setExpand] = React.useState(false) ;
27 |
28 | const {
29 | ExpandedItem,
30 | expandedItem
31 | } = props ;
32 |
33 | const {
34 | provider ,
35 | web3Provider,
36 | walletAddress,
37 | chainData,
38 | isConnected,
39 | } = useWalletInfo() ;
40 |
41 | const TriggerExpandedItem = (e, expanded, itemIndex) => {
42 | ExpandedItem(itemIndex) ;
43 | setExpand(expanded) ;
44 | }
45 |
46 | React.useEffect(() => {
47 | if(expandedItem !== 4){
48 | setExpand(false) ;
49 | }
50 | }, [expandedItem]) ;
51 |
52 | return (
53 |
54 | TriggerExpandedItem(e, expanded, 4)}
57 | >
58 | }
60 | sx={{backgroundColor : 'rgba(51, 139, 239, 0.21) !important'}}
61 | >
62 |
63 | Create purchase links
64 |
65 |
66 |
69 |
70 | Comming Soon...
71 |
72 |
73 |
74 |
75 |
76 | )
77 | }
78 | PurchaseLink.propTypes = {
79 | ExpandedItem : PropTypes.func.isRequired
80 | }
81 | const mapStateToProps = state => ({
82 | expandedItem : state.setting.expandedItem
83 | })
84 | const mapDispatchToProps = {
85 | ExpandedItem
86 | }
87 | export default connect(mapStateToProps, mapDispatchToProps)(PurchaseLink) ;
--------------------------------------------------------------------------------
/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
12 |
13 |
17 |
18 |
19 |
20 |
21 |
22 |
31 | SOLSTICE
32 |
33 |
54 |
55 |
56 |
57 |
58 |
68 |
69 |
70 |
72 |
73 |
--------------------------------------------------------------------------------
/src/utils/Helper.js:
--------------------------------------------------------------------------------
1 | // import { ethers } from 'ethers';
2 | import axios from 'axios';
3 | import { PRIVATE_CA1EX_API } from '../static/constants';
4 |
5 | export const setCookie = async (cname, cvalue) => {
6 | const d = new Date();
7 | d.setTime(d.getTime() + (24*60*60*1000));
8 | let expires = "expires="+ d.toUTCString();
9 |
10 | document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
11 | }
12 |
13 | export const getCookie = (cname) => {
14 | let name = cname + "=";
15 | let decodedCookie = decodeURIComponent(document.cookie);
16 | let ca = decodedCookie.split(';');
17 | for(let i = 0; i {
30 | document.cookie = cname+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
31 |
32 | return ;
33 | }
34 |
35 | export const isset = (value) => {
36 | try {
37 | if(typeof value === 'undefined') return false ;
38 | return true ;
39 | } catch(err) {
40 | console.log(err) ;
41 | return false ;
42 | }
43 | }
44 |
45 | // export const getLibrary = (provider) => {
46 | // return new ethers.providers.Web3Provider(provider) ;
47 | // }
48 |
49 | export const authorization = () => {
50 | return {
51 | headers: { Authorization: `Bearer ` + getCookie('access_token') }
52 | }
53 | }
54 |
55 | export const errorHandler = (err) => {
56 | try {
57 | if(err.response.status === 429){
58 | return "Too Many Requests." ;
59 | }
60 | if(err.response.status === 401){
61 | return "Unauthorized" ;
62 | }
63 | if(err.response.status >= 400 && err.response.status < 500){
64 | console.log(err.response.data.message) ;
65 | return err.response.data.message ;
66 | }
67 | } catch(error){
68 | console.log("error" , err);
69 | return "Server Side Error" ;
70 | }
71 | }
72 |
73 | // export const isAuthenticated = async () => {
74 | // if(getCookie('access_token')) {
75 | // const header = authorization() ;
76 | // try {
77 | // let res = await axios.post(`${PRIVATE_CA1EX_API}auth/isAuthenticated`, {} , header) ;
78 |
79 | // if(res.status === 200) {
80 | // return true ;
81 | // }
82 | // return false ;
83 | // } catch(err) {
84 | // console.log(errorHandler(err)) ;
85 |
86 | // return false ;
87 | // }
88 | // }
89 | // return false ;
90 | // }
91 |
92 | export const isAuthenticated = () => {
93 | if(getCookie('email')) {
94 | return true ;
95 | }
96 | return false ;
97 | }
--------------------------------------------------------------------------------
/src/pages/Solstice/NotificationsList.js:
--------------------------------------------------------------------------------
1 | import * as React from 'react' ;
2 |
3 | import { connect } from 'react-redux';
4 | import { UpdateNotify } from '../../redux/actions/notify';
5 | import PropTypes from 'prop-types' ;
6 |
7 | import SpeakerImage from '../../assets/common/Speaker.png' ;
8 | import CloseImage from '../../assets/common/Close.png' ;
9 |
10 | import { getCookie, getUnit, getUuid } from '../../utils/Helper';
11 |
12 | import {
13 | Box
14 | } from '@mui/material' ;
15 |
16 | import { useTheme } from '@mui/styles';
17 |
18 | import { useStyles } from './StylesDiv/Notifications.styles' ;
19 |
20 | const NotificationList = (props) => {
21 |
22 | const classes = useStyles(props) ;
23 |
24 | const {
25 | notifysList,
26 | isOpen
27 | } = props ;
28 |
29 | const handleDeleteNotify = async (id) => {
30 | await UpdateNotify(null, id) ;
31 | }
32 |
33 | return (
34 |
35 | {
36 | notifysList.map(([id, item]) => {
37 | return
38 |
39 |
40 | {
41 | item.type === 'legendary' && (
42 | item.buyer.role === 'reseller' ? `${item.buyer?.account_name} bought ${item.product}(NFT) with ${item.price} ${getUnit(item.unit)} at ${item.purchased_at}`
43 | : `${item.buyer?.account_name} bought ${item.product}(Product) with ${item.price} ${getUnit(item.unit)} at ${item.purchased_at}`
44 | )
45 | }
46 | {
47 | item.type === 'free' && `${item.buyer?.account_name} free offer ${item.product} at ${item.purchased_at}`
48 | }
49 | {
50 | item.type === 'bundle' && `${item.buyer?.account_name} bought ${item.product} with ${item.price} ${getUnit(item.unit)} at ${item.purchased_at}`
51 | }
52 | {
53 | item.type === 'rare' && `${item.buyer?.account_name} placed bid about ${item.product} with ${item.price} ${getUnit(item.unit)} at ${item.purchased_at}`
54 | }
55 |
56 | handleDeleteNotify(id)}>
57 |
58 |
59 |
60 | })
61 | }
62 |
63 | )
64 | }
65 |
66 | const mapStateToProps = state => ({
67 | })
68 | const mapDispatchToProps = {
69 |
70 | }
71 | export default connect(mapStateToProps, mapDispatchToProps) (NotificationList) ;
--------------------------------------------------------------------------------
/src/pages/ProfileLink/index.js:
--------------------------------------------------------------------------------
1 | import * as React from 'react' ;
2 | import { useLocation } from 'react-router-dom';
3 |
4 | import { connect } from 'react-redux';
5 | import PropTypes from 'prop-types' ;
6 | import { LoadingProfileLink, ProfileInfoByLink, InitLinkReducer } from '../../redux/actions/link';
7 |
8 | import Loading from 'react-loading-components' ;
9 | import NotFound from '../../components/Common/NotFound';
10 | import ProfileLinkScreen from './ProfileLinkScreen.js';
11 |
12 | import {
13 | Box
14 | } from '@mui/material' ;
15 |
16 | import {makeStyles, useTheme} from '@mui/styles' ;
17 |
18 | const useStyles = makeStyles((theme) => ({
19 | root : {
20 |
21 | },
22 | loadingDiv : {
23 | width : '100%' , height : '100vh',
24 | display : 'flex', justifyContent : 'center', alignItems : 'center', flexDirection : 'column', gap : '10px',
25 | background : theme.palette.blue.main
26 | }
27 | })) ;
28 |
29 | const ProfileLink = (props) => {
30 | const classes = useStyles() ;
31 | const theme = useTheme() ;
32 |
33 | const location = useLocation() ;
34 |
35 | const {
36 | ProfileInfoByLink,
37 | LoadingProfileLink,
38 | InitLinkReducer,
39 |
40 | loadingProfileLink
41 | } = props ;
42 |
43 | const [isProfileLink, setIsProfileLink] = React.useState(false) ;
44 |
45 | React.useEffect(async () => {
46 | // console.log(validateInputValue("asdfa sdfdsf")) ;
47 | // console.log("https://solsapp.com" + location.pathname) ;
48 |
49 | await LoadingProfileLink(false) ;
50 |
51 | if( await ProfileInfoByLink("https://solsapp.com" + location.pathname) ){
52 | setIsProfileLink(true) ;
53 | } else setIsProfileLink(false);
54 |
55 | await LoadingProfileLink(true) ;
56 |
57 | }, [location]) ;
58 |
59 | React.useEffect(() => {
60 | return () => {
61 | InitLinkReducer() ;
62 | }
63 | }, []) ;
64 |
65 | return (
66 | <>
67 | {
68 | !loadingProfileLink ?
69 |
70 | ...Checking Link
71 | :
72 | (
73 | !isProfileLink ? :
74 | )
75 | }
76 | >
77 | )
78 | }
79 | ProfileLink.propTypes = {
80 | ProfileInfoByLink : PropTypes.func.isRequired,
81 | LoadingProfileLink : PropTypes.func.isRequired,
82 | InitLinkReducer : PropTypes.func.isRequired
83 | }
84 | const mapStateToProps = state => ({
85 | loadingProfileLink : state.link.loadingProfileLink
86 | }) ;
87 | const mapDispatchToProps = {
88 | ProfileInfoByLink,
89 | LoadingProfileLink,
90 | InitLinkReducer
91 | } ;
92 | export default connect(mapStateToProps, mapDispatchToProps)(ProfileLink) ;
--------------------------------------------------------------------------------
/src/components/Layouts/SideMenu/index.styles.js:
--------------------------------------------------------------------------------
1 | import { makeStyles } from '@mui/styles' ;
2 |
3 | export const useStyles = makeStyles((theme) => ({
4 | paper : {
5 | backgroundColor : '#031C30 !important',
6 | },
7 | menuListDiv : {
8 | "& .MuiListItemButton-root" : {
9 | margin : 5,
10 | borderRadius : '10px !important',
11 | "&:hover" : {
12 | backgroundColor : '#667A8A'
13 | }
14 | }
15 | },
16 | logoDiv : {
17 | paddingLeft : 10,
18 | fontSize : 25,
19 | color : 'white'
20 | },
21 | expandUnion : {
22 | borderRadius : '50%',
23 | width : 60, height : 60,
24 | backgroundColor : "#EFF2F4 !important",
25 | display: 'flex', alignItems : 'center', justifyContent : 'center',
26 | cursor : 'pointer'
27 | },
28 | lessUnion : {
29 | width : 40, height : 40,
30 | background : '#EFF2F4',
31 | borderRadius : 10,
32 | display: 'flex', alignItems : 'center', justifyContent : 'center',
33 | cursor : 'pointer'
34 | },
35 | expandUnionDiv : {
36 | marginTop : 30, marginBottom : 40,
37 | display : 'flex', alignItems : 'center',
38 | },
39 | lessUnionDiv : {
40 | marginTop : 30, marginBottom : 40,
41 | display: 'flex', justifyContent : 'center',
42 | },
43 | popButtonCss : {
44 | zIndex : 10000,
45 | position : 'fixed', bottom : 20, left : 20,
46 | height : 50, width : 50,
47 | background : '#EFF2F4',
48 | transition : '0.1s',
49 | borderRadius : '50%',
50 | display: 'flex', alignItems : 'center', justifyContent : 'center',
51 | cursor : 'pointer',
52 | boxSizing : 'content-box',
53 | boxShadow : '0 0 20px #eee !important',
54 | "&:hover" : {
55 | }
56 | },
57 | addressDiv : {
58 | "& span" : {
59 | fontSize : '20px !important', fontWeight : 'bold',
60 | cursor : 'pointer !important'
61 | },
62 | },
63 | notificationDiv : {
64 | display : 'flex', alignItems : 'center' , justifyContent : 'center',
65 | position : 'fixed',
66 | right : 20,
67 | bottom : 20,
68 | zIndex: 5000,
69 | borderRadius : '50%',
70 | padding : 5,
71 | transition : '0.2s',
72 | boxShadow : '0px 0px 15px #42e189 !important',
73 | "&:hover" : {
74 | boxShadow : '0px 0px 20px #42e189 !important',
75 | },
76 | cursor : 'pointer' ,
77 | background : '#5589516b'
78 | },
79 | notifyCountDiv : {
80 | position : 'fixed',
81 | right : 30,
82 | bottom : 50,
83 | zIndex: 5001,
84 |
85 | // color : theme.palette.green.A100,
86 | color : '#2841bb',
87 | fontFamily : 'serif',
88 |
89 | width : 18, height : 18,
90 | background : '#ffffffa8',
91 | borderRadius : '50%',
92 |
93 | display : 'flex', justifyContent : 'center', alignItems : 'center',
94 | fontSize : 12,
95 | fontWeight : 'bold',
96 | }
97 | }));
--------------------------------------------------------------------------------
/src/redux/reducers/cloud.js:
--------------------------------------------------------------------------------
1 | import ActionTypes from '../actions/actionTypes' ;
2 |
3 | const INITIAL_STATE = {
4 | upload : {
5 | documentFiles : null ,
6 | videoFiles : null,
7 | imageFiles : null,
8 | audioFiles : null,
9 | videoTotalSize : 0,
10 | documentTotalSize : 0,
11 | audioTotalSize : 0,
12 | imageTotalSize : 0
13 | },
14 | purchase : {
15 | documentFiles : null ,
16 | videoFiles : null,
17 | imageFiles : null,
18 | audioFiles : null,
19 | videoTotalSize : 0,
20 | documentTotalSize : 0,
21 | audioTotalSize : 0,
22 | imageTotalSize : 0
23 | }
24 | }
25 |
26 | export default function cloud(state=INITIAL_STATE, action) {
27 | switch(action.type) {
28 | // case ActionTypes.DocumentFiles :
29 | // return ({
30 | // ...state,
31 | // documentFiles : action.payload
32 | // })
33 | // case ActionTypes.VideoFiles :
34 | // return ({
35 | // ...state,
36 | // videoFiles : action.payload
37 | // })
38 | // case ActionTypes.AudioFiles :
39 | // return ({
40 | // ...state,
41 | // audioFiles : action.payload
42 | // })
43 | // case ActionTypes.ImageFiles :
44 | // return ({
45 | // ...state,
46 | // imageFiles : action.payload
47 | // })
48 | case ActionTypes.CloudUploadFiles:
49 | return ({
50 | ...state,
51 | upload : {
52 | imageFiles : action.payload.imageFiles,
53 | videoFiles : action.payload.videoFiles,
54 | audioFiles : action.payload.audioFiles,
55 | documentFiles : action.payload.documentFiles,
56 |
57 | videoTotalSize : action.payload.videoTotalSize,
58 | imageTotalSize : action.payload.imageTotalSize,
59 | documentTotalSize : action.payload.documentTotalSize,
60 | audioTotalSize : action.payload.audioTotalSize
61 | }
62 | });
63 | case ActionTypes.CloudPurchaseFiles:
64 | return ({
65 | ...state,
66 | purchase : {
67 | imageFiles : action.payload.imageFiles,
68 | videoFiles : action.payload.videoFiles,
69 | audioFiles : action.payload.audioFiles,
70 | documentFiles : action.payload.documentFiles,
71 |
72 | videoTotalSize : action.payload.videoTotalSize,
73 | imageTotalSize : action.payload.imageTotalSize,
74 | documentTotalSize : action.payload.documentTotalSize,
75 | audioTotalSize : action.payload.audioTotalSize
76 | }
77 | })
78 | default :
79 | return state ;
80 | }
81 | }
--------------------------------------------------------------------------------
/src/components/Solstice/SettingScreen/ConfigurePayment.js:
--------------------------------------------------------------------------------
1 | import * as React from 'react' ;
2 |
3 | import { useWalletInfo } from '../../../contexts/WalletContext' ;
4 |
5 | import {connect} from 'react-redux' ;
6 | import { ExpandedItem } from '../../../redux/actions/setting';
7 | import PropTypes from 'prop-types' ;
8 |
9 | import ExpandMoreIcon from '@mui/icons-material/ExpandMore' ;
10 |
11 | import {
12 | Box ,
13 | Accordion,
14 | AccordionSummary,
15 | AccordionDetails,
16 | Button
17 | } from '@mui/material' ;
18 |
19 | import { useStyles } from './StylesDiv/Payment.styles';
20 | import { useTheme } from '@mui/material' ;
21 |
22 | const ConfigurePayment = (props) => {
23 | const classes = useStyles() ;
24 | const theme = useTheme() ;
25 |
26 | const {
27 | ExpandedItem,
28 | expandedItem
29 | } = props ;
30 |
31 | const {
32 | provider ,
33 | web3Provider,
34 | walletAddress,
35 | chainData,
36 | isConnected,
37 | } = useWalletInfo() ;
38 |
39 | const [expand, setExpand] = React.useState(false) ;
40 |
41 | const TriggerExpandedItem = (e, expanded, itemIndex) => {
42 | ExpandedItem(itemIndex) ;
43 | setExpand(expanded) ;
44 | }
45 |
46 | React.useEffect(() => {
47 | if(expandedItem !== 0){
48 | setExpand(false) ;
49 | }
50 | }, [expandedItem]) ;
51 |
52 | return (
53 |
54 | TriggerExpandedItem(e, expanded, 0)}
57 | >
58 | }
60 | sx={{backgroundColor : 'rgba(51, 139, 239, 0.21) !important'}}
61 | >
62 |
63 | Configure payments
64 |
65 |
66 |
69 |
70 | In order to begin accepting payments, you must connect a Stripe account.
71 | Stripe is a payment processing platform used by millions of online businesses including Google, Apple, Amazon, Facebook, and Discord.
72 | You're in good hands.
73 |
74 |
75 |
76 |
77 |
78 |
79 | )
80 | }
81 | ConfigurePayment.propTypes = {
82 | ExpandedItem : PropTypes.func.isRequired
83 | }
84 | const mapStateToProps = state => ({
85 | expandedItem : state.setting.expandedItem
86 | })
87 | const mapDispatchToProps = {
88 | ExpandedItem
89 | }
90 | export default connect(mapStateToProps, mapDispatchToProps)(ConfigurePayment) ;
--------------------------------------------------------------------------------
/src/components/Solstice/CartScreen/NFTs/OwnersList.js:
--------------------------------------------------------------------------------
1 | import React from 'react' ;
2 |
3 | import { useState } from 'react' ;
4 |
5 | import PersonIcon from '@mui/icons-material/Person';
6 |
7 | import {
8 | Box,
9 | Accordion,
10 | AccordionActions,
11 | AccordionSummary,
12 | AccordionDetails,
13 | ListItem,
14 | List
15 | } from '@mui/material';
16 |
17 | import ExpandMoreIcon from '@mui/icons-material/ExpandMore' ;
18 |
19 | import { makeStyles, useTheme } from '@mui/styles';
20 |
21 | const useStyles = makeStyles((theme) => ({
22 | root : {
23 | display : 'flex', justifyContent : 'center' ,
24 |
25 | "& .MuiAccordion-root" : {
26 | backgroundColor : 'transparent !important',
27 | boxShadow : "none",
28 | color : 'white !important',
29 | border : '1px solid gray',
30 | width : 450,
31 | } ,
32 | "& .MuiAccordionSummary-root" : {
33 | cursor : 'pointer',
34 | padding : '5px !important',
35 | minHeight : '0px !important',
36 | height : '40px !important',
37 |
38 | display : 'flex', justifyContent : 'space-between', alignItems : 'center',
39 | "&:hover" : {
40 | backgroundColor : 'gray',
41 | },
42 | "& .MuiAvatar-root" : {
43 | border : 'none !important'
44 | },
45 | "& svg" : {
46 | color : 'white !important'
47 | },
48 |
49 |
50 | },
51 |
52 | "& .MuiAccordionDetails-root" : {
53 | "& .MuiList-root" : {
54 | padding : '0px !important'
55 | },
56 | "& .MuiListItem-root" : {
57 | padding : '10px !important'
58 | }
59 | } ,
60 |
61 | "& .MuiAccordionSummary-root.Mui-expanded" : {
62 | minHeight : '0px !important',
63 | height : '40px !important',
64 | },
65 | }
66 | }))
67 |
68 | const OwnersList = (props) => {
69 |
70 | const classes = useStyles() ;
71 |
72 | const {
73 | ownersList
74 | } = props ;
75 |
76 | return (
77 |
78 |
80 | }
82 | >
83 | View All {ownersList.length} Owners
84 |
85 |
88 |
89 | {
90 | ownersList.map((owner, index) => {
91 | return (
92 | {owner}
93 | )
94 | })
95 | }
96 |
97 |
98 |
99 |
100 | )
101 | }
102 |
103 | export default OwnersList;
--------------------------------------------------------------------------------
/src/components/Modals/MessageModal.js:
--------------------------------------------------------------------------------
1 | import React, { useEffect, useState } from 'react' ;
2 |
3 | import { connect } from 'react-redux';
4 |
5 | import SuccessImage from '../../assets/modals/Success.svg' ;
6 | import ErrorImage from '../../assets/modals/Error.svg' ;
7 | import InfoImage from '../../assets/modals/Info.svg' ;
8 |
9 | import {
10 | Dialog,
11 | DialogActions,
12 | DialogTitle,
13 | DialogContent,
14 | Box,
15 | Button,
16 | TextField
17 | } from '@mui/material' ;
18 |
19 | import { makeStyles } from '@mui/styles' ;
20 |
21 | const useStyles = makeStyles(() => ({
22 | root : {
23 |
24 | },
25 | paper : {
26 | backgroundColor : 'white !important',
27 | borderRadius : '15px !important',
28 |
29 | "& .MuiDialogTitle-root" : {
30 | color : 'white'
31 | },
32 |
33 | "& .MuiButtonBase-root" : {
34 | textTransform : 'capitalize !important',
35 | color : 'white',
36 | borderRadius : 20,
37 | backgroundColor : '#3772FF !important'
38 | },
39 | },
40 | })) ;
41 |
42 | const MessageModal = (props) => {
43 |
44 | const classes = useStyles() ;
45 |
46 | const {
47 | open,
48 | handleClose,
49 |
50 | title,
51 | type,
52 | message
53 | } = props ;
54 |
55 | const [titleColor, setTitleColor] = useState('#05A660') ;
56 |
57 | useEffect(() => {
58 | if(type === 'success') setTitleColor('#05A660') ;
59 | if(type === 'error') setTitleColor('#E53535') ;
60 | if(type === 'info') setTitleColor("#3772FF");
61 | }, [type]) ;
62 |
63 | return (
64 |
65 |
89 |
90 | )
91 | }
92 |
93 | const mapStateToProps = state => ({
94 | })
95 | const mapDispatchToProps = {
96 | }
97 | export default connect(mapStateToProps, mapDispatchToProps)(MessageModal) ;
--------------------------------------------------------------------------------
/src/assets/menu/Upload.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/components/Solstice/CloudScreen/CloudPurchase/FileDetail.js:
--------------------------------------------------------------------------------
1 | import * as React from 'react' ;
2 |
3 | import {
4 | Box
5 | } from '@mui/material' ;
6 |
7 | import {makeStyles} from '@mui/styles' ;
8 |
9 | const useStyles = makeStyles(() => ({
10 | root : {
11 |
12 | },
13 | infoDiv : {
14 | display : 'flex', flexDirection : 'column', gap : '10px'
15 | }
16 | }))
17 | const FileDetail = (props) => {
18 | const classes = useStyles() ;
19 |
20 | const {
21 | fileDetailInfo
22 | } = props ;
23 |
24 | return (
25 |
26 | {
27 | fileDetailInfo?.price_type === 'legendary' &&
28 |
29 | Price per product: {fileDetailInfo?.product_price}usd
30 |
31 |
32 | Price per ticket : {fileDetailInfo?.resell_price}
33 |
34 |
35 | # of tickets available: {fileDetailInfo?.resell_count}
36 |
37 |
38 | Royalty: {fileDetailInfo?.royalty_fee}%
39 |
40 |
41 | }
42 | {
43 | fileDetailInfo?.price_type === 'rare' &&
44 |
45 | Minimum Bidding: {fileDetailInfo?.minimum_bidding}usd
46 |
47 |
48 | Royalty: {fileDetailInfo?.royalty_fee}%
49 |
50 |
51 | Avaliable Items: {fileDetailInfo?.available_items}
52 |
53 |
54 | Listing Time Frame :
55 | {fileDetailInfo?.listing_time.from.year}.
56 | {fileDetailInfo?.listing_time.from.month}.
57 | {fileDetailInfo?.listing_time.from.day} -
58 | {fileDetailInfo?.listing_time.to.year}.{fileDetailInfo?.listing_time.to.month}.{fileDetailInfo?.listing_time.to.day}
59 |
60 |
61 | }
62 | {
63 | fileDetailInfo?.price_type === 'bundle' &&
64 |
65 | Price per subscription: {fileDetailInfo?.subscription_price}usd
66 |
67 |
68 | Payment: {fileDetailInfo?.payment_method}
69 |
70 |
71 | Release Date : {fileDetailInfo?.release_date}
72 |
73 |
74 | Distribution Schedule: {fileDetailInfo?.distribution_schedule}
75 |
76 |
77 | }
78 | {
79 | fileDetailInfo?.price_type === 'free' &&
80 |
81 | Release Date : {fileDetailInfo?.release_date}
82 |
83 |
84 | Distribution Schedule: {fileDetailInfo?.distribution_schedule}
85 |
86 |
87 | }
88 |
89 | )
90 | }
91 |
92 | export default FileDetail ;
--------------------------------------------------------------------------------