diff --git a/Attributions.MD b/Attributions.MD index ee85a31..3ab779b 100644 --- a/Attributions.MD +++ b/Attributions.MD @@ -3,4 +3,5 @@ Stop icons created by DinosoftLabs - Flaticon Play button icons created by Those Icons - Flaticon Save as icons created by Sir.Vector - Flaticon -Preview icons created by Miftakhul Rizky - Flaticon \ No newline at end of file +Preview icons created by Miftakhul Rizky - Flaticon +Icon on Donate page \ No newline at end of file diff --git a/changeIndex.txt b/changeIndex.txt index 26c0b01..c6092d0 100644 --- a/changeIndex.txt +++ b/changeIndex.txt @@ -30,3 +30,8 @@ Changes For new version of PBA: - Added Workers to handle MIDI NOT NEEDED - new algorithm workes 200times faster, DONE - RAPAIR THE AUDIO BY ADDING MULTIPLE DOUBELING THE AUDIO SOUNDS DONE - CHANGE THE DESIGN OF CARDS TO IMPLEMENT CORRECTLY THE RIBBON VISUALS DONE +- Player pauses automatically when page is switched DONE +- Resize is now refreshing also the blocks, making everything look ok DONE +- Deleted transition and bugs during resizing of options page DONE +- Deleted alterations of state with every note event creation, now the connection between rendering component and playing component is direct DONE +- diff --git a/src/App.css b/src/App.css index e1fed9f..2bcd0b0 100644 --- a/src/App.css +++ b/src/App.css @@ -2,7 +2,8 @@ width:100%; position: absolute; top: 0px; - overflow-y: hidden; + height: 100vh; + overflow-y: auto; overflow-x: hidden; } diff --git a/src/Assets/Cactus.gif b/src/Assets/Cactus.gif deleted file mode 100644 index ab5ab62..0000000 Binary files a/src/Assets/Cactus.gif and /dev/null differ diff --git a/src/Assets/Donate_Img.png b/src/Assets/Donate_Img.png new file mode 100644 index 0000000..4309988 Binary files /dev/null and b/src/Assets/Donate_Img.png differ diff --git a/src/Assets/FontAwesomeLogo.png b/src/Assets/FontAwesomeLogo.png deleted file mode 100644 index fd9c41e..0000000 Binary files a/src/Assets/FontAwesomeLogo.png and /dev/null differ diff --git a/src/Assets/GoogleFontsLogo.png b/src/Assets/GoogleFontsLogo.png deleted file mode 100644 index 0cb856b..0000000 Binary files a/src/Assets/GoogleFontsLogo.png and /dev/null differ diff --git a/src/Assets/NPMLogo.png b/src/Assets/NPMLogo.png deleted file mode 100644 index 442f893..0000000 Binary files a/src/Assets/NPMLogo.png and /dev/null differ diff --git a/src/Assets/ReactJSLogo.png b/src/Assets/ReactJSLogo.png deleted file mode 100644 index 7480845..0000000 Binary files a/src/Assets/ReactJSLogo.png and /dev/null differ diff --git a/src/Assets/Rhombus.gif b/src/Assets/Rhombus.gif deleted file mode 100644 index d6b04c5..0000000 Binary files a/src/Assets/Rhombus.gif and /dev/null differ diff --git a/src/Assets/TypeScriptLogo.png b/src/Assets/TypeScriptLogo.png deleted file mode 100644 index 438cc17..0000000 Binary files a/src/Assets/TypeScriptLogo.png and /dev/null differ diff --git a/src/Assets/avnt_big.png b/src/Assets/avnt_big.png new file mode 100644 index 0000000..076c391 Binary files /dev/null and b/src/Assets/avnt_big.png differ diff --git a/src/Assets/demo.MID b/src/Assets/demo.MID deleted file mode 100644 index 261f6f6..0000000 Binary files a/src/Assets/demo.MID and /dev/null differ diff --git a/src/Assets/demo_old.MID b/src/Assets/demo_old.MID deleted file mode 100644 index a5e2b3b..0000000 Binary files a/src/Assets/demo_old.MID and /dev/null differ diff --git a/src/Assets/herokuLogo.png b/src/Assets/herokuLogo.png deleted file mode 100644 index beeeeb6..0000000 Binary files a/src/Assets/herokuLogo.png and /dev/null differ diff --git a/src/Assets/hug.gif b/src/Assets/hug.gif deleted file mode 100644 index 1b32a14..0000000 Binary files a/src/Assets/hug.gif and /dev/null differ diff --git a/src/Assets/preview.png b/src/Assets/preview.png deleted file mode 100644 index cb5143b..0000000 Binary files a/src/Assets/preview.png and /dev/null differ diff --git a/src/Components/DonateButton/DonateButton.scss b/src/Components/DonateButton/DonateButton.scss deleted file mode 100644 index 50162b0..0000000 --- a/src/Components/DonateButton/DonateButton.scss +++ /dev/null @@ -1,15 +0,0 @@ -.DonateButton{ - border-radius: 5px; - box-shadow: 1px 1px 4px black; - background-color: beige; - a{ - font-size: 18px; - display: block; - padding: 10px; - padding-left: 20px; - padding-right: 20px; - text-decoration: none; - color: rgb(32, 143, 180); - transition: 0.15s; - } -} \ No newline at end of file diff --git a/src/Components/DonateButton/DonateButton.tsx b/src/Components/DonateButton/DonateButton.tsx deleted file mode 100644 index d12be59..0000000 --- a/src/Components/DonateButton/DonateButton.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import React from 'react' -import './DonateButton.scss' - -interface DonateButton_Props{ - className: string - link:string -} - -export default function DonateButton({className,link}:DonateButton_Props) { - - return ( -
- Donate -
- ) -} diff --git a/src/Components/Header/Header.tsx b/src/Components/Header/Header.tsx index 7590c58..03b4f03 100644 --- a/src/Components/Header/Header.tsx +++ b/src/Components/Header/Header.tsx @@ -24,7 +24,7 @@ export default function Header() { RECORD {/* LIVE PLAY */} DOCS - SUPPORT + ABOUT diff --git a/src/Pages/About/About.scss b/src/Pages/About/About.scss index 3c00ce2..c622082 100644 --- a/src/Pages/About/About.scss +++ b/src/Pages/About/About.scss @@ -1,192 +1,268 @@ -@import url('https://fonts.googleapis.com/css2?family=Quicksand:wght@300;400;500&display=swap'); - -.Info_Main{ +.About_Container{ + height: fit-content; + width: 1440px; + margin: 0px auto; + padding-top: 40px; position: relative; - box-sizing: border-box; - padding-top: 100px; - color:white; - .Contributes{ - font-family: 'Quicksand', sans-serif; - background-color: #44c2f81a; - box-shadow: 0px -2px 5px black; - margin-bottom: 0px; - height:300px; - .Contributes_h1{ - font-size: 28px; - padding-top: 10px; - text-align: left; - width: 90%; - margin: 0px auto; - margin-bottom: 20px; - display: block; - } - ._List{ - display: block; - margin-top: 40px; - margin-bottom: 0; - .L_Element{ - margin: 10px; - a{ - color:lightblue; - text-decoration: none; - font-size: 18px; - transition: 0.15s; + display: flex; + flex-direction: row; + flex-wrap: wrap; + padding-bottom: 10px; + + h3{ + font-size: 32px; + margin: 0; + padding: 0; + color: #131F2D; + font-weight: 100; + width: calc(100% - 25px); + padding-bottom: 5px; + border-bottom: 1px dashed #131F2D; + } + + .FAQ, .Description, .Support, .Join{ + background-color: white; + box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.425); + border-radius: 2px; + padding-top: 20px; + padding-left: 20px; + margin: 0; + box-sizing: border-box; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + margin-top: 20px; + height: 360px; + width: 100%; + position: relative; + } + + .Description{ + width: 460px; + .Description_Context{ + width: 95%; + height: fit-content; + max-height: calc(90% - 42px); + overflow: auto; + overflow-x: hidden; + .Description_Article{ + position: relative; + width: 100%; + h4, p, img{ margin: 0; - cursor:pointer; + padding: 0; + } + h4{ + font-size: 22px; + margin-top: 10px; + margin-bottom: 5px; + color: #F36300; + } + p::first-letter{ + margin-left: 20px; + line-height: 18px; } - a:hover{ - color:rgb(32, 143, 180) + img{ + margin: 10px; + height: 75px; + width: auto; + border-radius: 6px; + filter: drop-shadow(0px 0px 4px #00000062); } } } } - .Support{ - background-color: rgba(255, 255, 255, 0.219); - padding-bottom: 50px; - height:300px; - margin-top: 0px; - font-family: 'Quicksand', sans-serif; - box-shadow: 0px 0px 8px black; - .Support_h1{ - font-size: 28px; - height:50px; - width:90%; - margin: 0 auto; - text-align: left; - padding-top: 20px; + .FAQ{ + h3{ + border: none; } - .Support_Data{ - width:90%; - height:90%; - margin: 10px auto; - display: flex; - flex-direction: row; - align-items: center; - justify-content: space-around; - .Supp_img{ - height:100%; - width:50%; - display: flex; - align-items: center; - justify-content: flex-start; - border-radius: 10px; + width: 960px; + margin-left: 20px; + .FAQ_container{ + width: calc(100% - 25px); + height: fit-content; + max-height: calc(90% - 42px); + overflow-y: auto; + .FAQ_question{ + margin-top: 10px; + transition: 0.5s; + height: fit-content; overflow: hidden; - img{ - height:90%; - border-radius: 10px; - object-fit: fill; - width:50%; - } - } - .Support_don{ + max-height: 40px; display: flex; - flex-direction: column; - align-items: center; - h3{ - text-align: center; - font-size: 14px; - font-weight: 300; - } - a{ - text-decoration: none; - color: rgb(32, 143, 180); - transition: 0.15s; - } - a:hover{ - color: rgb(150, 202, 219); + flex-direction: row; + h5{ + display: inline-block; + margin: 0; + box-sizing: border-box; + font-size: 18px; + width: 50px; + padding-left: 15px; + padding-top: 7px; + color: #F36300; } - .inp{ - display: flex; - justify-content: space-around; - align-items: center; - flex-direction: row; + .FAQ_question_container{ + display: inline-block; + width: calc(100% - 50px - 40px); + border-bottom: 2px dashed black; + h4{ + margin: 0; + padding: 0; + font-size: 22px; + width: calc(100% - 10px); + transition: 0.15s; + height: 38px; + padding-left: 10px; + word-wrap: break-word; + display: flex; + align-items: center; + &:hover{ + background-color: #f4f7fd; + border-radius: 2px; + cursor: pointer; + } + } p{ - font-size: 11px; - color: rgba(255, 255, 255, 0.541); - margin-left: 5px; + padding:10px; + padding-top: 5px; + margin: 0; + a{ + color: rgb(91, 157, 255); + text-decoration: none; + } } } - input[type='checkbox']{ - width:25px; - height:25px; - overflow: hidden; - position: relative; - cursor: pointer; - } - input[type='checkbox']::after{ - font-size: 18px; - content: '😢'; - width: 100%; - height: 100%; - top:0; - left: 0px; - background-color: rgb(230, 63, 63); - position: absolute; - } - input[type='checkbox']:hover::after{ - font-size: 18px; - content: '😻'; - background-color: rgb(96, 141, 226); - } - input[type='checkbox']:checked:hover::after{ - font-size: 18px; - content: '😱'; - background-color: rgb(96, 141, 226); - } - input[type='checkbox']:checked::after{ - font-size: 18px; - content:'❤️'; - background-color: rgb(147, 226, 94); - } } - } - } -} - -@media only screen and (max-width:1020px) { - .Info_Main{ - .Support{ - .Support_Data{ - .Supp_img{ - img{ - width:80%; - height:60%; - } + .FAQ_open{ + transition: 1s; + max-height: 200px; + .FAQ_question_container{ + background-color: #f4f7fd; } } } } -} -@media only screen and (max-width:550px) { - .Info_Main{ - .Contributes{ - .Contributes_h1{ - font-size: 18px; + .Support{ + padding: 0; + display: flex; + flex-direction: row; + overflow: hidden; + .BG_Dot_1, .BG_Dot_2, .Big_Dot_3{ + position: absolute; + z-index: 0; + background-color: #3F4650; + height: 80%; + aspect-ratio: 1/1; + border-radius: 50%; + } + .Support_Left{ + width: 60%; + height: 100%; + background-color: #3F4650; + position: relative; + .BG_Dot_1{ + right: -10px; + top:-20px; } - ._List{ - .L_Element{ - a{ - font-size: 14px; - } + .BG_Dot_2{ + right: -90px; + bottom: -100px; + z-index: 2; + } + .Support_Left_Content{ + position: relative; + z-index: 3; + padding: 20px; + width: 80%; + h2, p, h5, li, ul{ + margin: 0; + padding: 0; + color: #F5F5F5; + font-weight: 100; + } + h2{ + font-size: 48px; + } + p{ + width: 80%; + } + h5{ + margin-top: 25px; + font-size: 22px; + text-shadow: 0px 0px 3px rgba(255, 255, 255, 0.664); + } + .Support_Left_Donation_Bar{ + width: 50%; + height: 20px; + border-radius: 5px; + margin-top: 5px; + background: linear-gradient(90deg, #A6FD7E, #ffffff, #ffffff); + } + ul{ + list-style: none; + margin-top: 20px; } } } - .Support{ - .Support_h1{ - font-size: 18px; + .Support_Right{ + width: 40%; + height: 100%; + position: relative; + .Big_Dot_3{ + background-color: white; + top:-100px; + left: -104px; } - .Support_Data{ - .Supp_img{ - img{ - width:80%; - height:60%; - } + .Support_Right_Content{ + position: absolute; + top: 0px; + left: 45px; + background-color: white; + width: 100%; + height: 100%; + z-index: 1; + img{ + display: block; + width: 55%; + margin: -5px auto; + height: auto; + pointer-events: none; } - .Support_don{ - width:50%; + a{ + display: flex; + align-items: center; + justify-content: center; + width: 260px; + height: 40px; + margin: -20px auto; + background-color: #A6FD7E; + border-radius: 6px; + box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.411); + text-decoration: none; + font-size: 32px; + color: black; + transition: 0.1s; + &:hover{ + transform: scale(1.015); + } } } } } + + .Join{ + height: 70px; + display: flex; + align-items: center; + padding-top: 0; + h2{ + font-weight: 100; + } + a, .Link_color{ + color: rgb(63, 168, 238); + } + .Link_color{ + cursor: auto; + } + } } \ No newline at end of file diff --git a/src/Pages/About/About.tsx b/src/Pages/About/About.tsx index 7fce710..ae38192 100644 --- a/src/Pages/About/About.tsx +++ b/src/Pages/About/About.tsx @@ -1,33 +1,23 @@ -import React, {useEffect, useState} from 'react'; -import { useNavigate } from 'react-router-dom'; +import React from 'react'; import './About.scss'; -import DonateButton from '../../Components/DonateButton/DonateButton' +import "./About_res_1480.scss"; +import "./About_res_1100.scss"; +import "./About_res_760.scss"; +import "./About_res_560.scss"; -export default function ToDo() { +import Description from './Description/Description'; +import FAQ from './FAQ/FAQ'; +import Support from './Support/Support'; - const navigate = useNavigate(); - - useEffect(()=>{ - window.location.href = 'https://www.paypal.com/donate/?hosted_button_id=J6GQGKHC7H7SG' - },[]) +export default function About():React.ReactElement { return ( -
-
-

List of all additional data

- -
-
-

Support / Donate

-
- -
+
+ + + +
+

Want to contribute to the project, or You have any questions? Contact: tymsonekjelonek@gmail.com, IG: @tymsonekjelonek, LinkedIn: Tymoteusz Apriasz .

) diff --git a/src/Pages/About/About_res_1100.scss b/src/Pages/About/About_res_1100.scss new file mode 100644 index 0000000..c45f12f --- /dev/null +++ b/src/Pages/About/About_res_1100.scss @@ -0,0 +1,69 @@ +@media only screen and (max-width: 1100px) { + .About_Container{ + width: 720px; + .FAQ, .Description, .Support, .Join{ + width: 100%; + height: 300px; + } + .FAQ{ + margin-left: 0; + } + .Support{ + order: -1; + .Support_Left{ + width: 70%; + .BG_Dot_2{ + display: none; + } + .Support_Left_Content{ + h2{ + font-size: 32px; + } + p{ + font-size: 12px; + } + ul{ + font-size: 12px; + } + } + } + .Support_Right{ + width: 30%; + background-color: #3F4650; + .Big_Dot_3{ + display: none; + } + .Support_Right_Content{ + position: relative; + background-color: #3F4650; + margin: 0; + left: -30px; + height: 100%; + width: 100%; + top: 0; + display: flex; + align-items: center; + justify-content: center; + flex-direction: column; + img{ + margin:0; + margin-top: -60px; + width: 80%; + } + a{ + margin: 0; + width: 180px; + height: 30px; + font-size: 24px; + } + } + } + } + .Join{ + height: fit-content; + h2{ + font-size: 19px; + } + } + } +} \ No newline at end of file diff --git a/src/Pages/About/About_res_1480.scss b/src/Pages/About/About_res_1480.scss new file mode 100644 index 0000000..46b9af7 --- /dev/null +++ b/src/Pages/About/About_res_1480.scss @@ -0,0 +1,91 @@ +@media only screen and (min-width: 1100px) and (max-height:900px){ + .About_Container{ + transform: scale(0.9); + padding-top: 0; + padding-bottom: 0; + margin-top: -10px; + } +} + +@media only screen and (max-width: 1480px) { + .About_Container{ + width: 1080px; + .FAQ, .Description, .Support, .Join{ + width: 100%; + } + .Description{ + width: 440px; + .Description_Context{ + .Description_Article{ + h4{ + font-size: 18px; + } + p{ + font-size: 14px; + } + } + } + } + h3{ + font-size: 28px; + } + .FAQ{ + width: 620px; + .FAQ_container{ + .FAQ_question{ + max-height: 35px; + h5{ + font-size: 16px; + } + .FAQ_question_container{ + h4{ + font-size: 18px; + height: 33px; + word-wrap: break-word; + display: flex; + align-items: center; + } + p{ + font-size: 14px; + padding-top: 5px; + } + } + } + .FAQ_open{ + max-height: 300px; + } + } + } + .Support{ + .Support_Left{ + .Support_Left_Content{ + h2{ + font-size: 40px; + } + p{ + font-size: 14px; + } + ul{ + font-size: 14px; + } + } + } + .Support_Right{ + .Support_Right_Content{ + img{ + margin-top: 30px; + } + a{ + margin-top: -15px; + } + } + } + } + .Join{ + h2{ + font-size: 19px; + } + } + } + +} \ No newline at end of file diff --git a/src/Pages/About/About_res_560.scss b/src/Pages/About/About_res_560.scss new file mode 100644 index 0000000..d14820c --- /dev/null +++ b/src/Pages/About/About_res_560.scss @@ -0,0 +1,97 @@ +@media only screen and (max-width: 560px) { + .About_Container{ + width: 340px; + .Description{ + // width: 440px; + .Description_Context{ + .Description_Article{ + h4{ + font-size: 16px; + } + p{ + font-size: 12px; + } + } + } + } + h3{ + font-size: 24px; + } + .FAQ{ + // width: 620px; + .FAQ_container{ + .FAQ_question{ + max-height: 72px; + margin-top: 5px; + h5{ + font-size: 14px; + width: 30px; + padding-left: 5px; + padding-top: 25px; + } + .FAQ_question_container{ + width: calc(100% - 40px); + h4{ + line-height: 14px; + font-size: 14px; + height: 70px; + } + p{ + font-size: 12px; + padding-top: 5px; + } + } + } + .FAQ_open{ + max-height: 450px; + } + } + } + .Support{ + flex-direction: column; + .Support_Left{ + width: 100%; + .Support_Left_Content{ + box-sizing: border-box; + width: 100%; + h2{ + font-size: 24px; + } + p{ + font-size: 14px; + width: 100%; + padding-top: 5px; + } + h5{ + margin-top: 10px; + display: none; + } + ul{ + font-size: 10px; + margin-top: 10px; + } + } + } + .Support_Right{ + width: 100%; + .Support_Right_Content{ + left: 0; + margin: 0; + top: -1px; + img{ + display: none; + } + a{ + // margin-top: -15px; + } + } + } + } + .Join{ + h2{ + font-size: 16px; + } + } + } + +} \ No newline at end of file diff --git a/src/Pages/About/About_res_760.scss b/src/Pages/About/About_res_760.scss new file mode 100644 index 0000000..0a81a70 --- /dev/null +++ b/src/Pages/About/About_res_760.scss @@ -0,0 +1,90 @@ +@media only screen and (max-width: 760px) { + .About_Container{ + width: 540px; + .Description{ + // width: 440px; + .Description_Context{ + .Description_Article{ + h4{ + font-size: 16px; + } + p{ + font-size: 12px; + } + } + } + } + h3{ + font-size: 24px; + } + .FAQ{ + // width: 620px; + .FAQ_container{ + .FAQ_question{ + // max-height: 35px; + h5{ + // font-size: 16px; + } + .FAQ_question_container{ + h4{ + line-height: 14px; + font-size: 14px; + height: 33px; + } + p{ + font-size: 12px; + padding-top: 5px; + } + } + } + .FAQ_open{ + // max-height: 300px; + } + } + } + .Support{ + flex-direction: column; + .Support_Left{ + width: 100%; + .Support_Left_Content{ + box-sizing: border-box; + width: 100%; + h2{ + // font-size: 40px; + } + p{ + // font-size: 14px; + } + h5{ + margin-top: 10px; + } + .Support_Left_Donation_Bar{ + display: none; + } + ul{ + margin-top: 10px; + } + } + } + .Support_Right{ + width: 100%; + .Support_Right_Content{ + left: 0; + margin: 0; + img{ + display: none; + } + a{ + // margin-top: -15px; + } + } + } + } + .Join{ + h2{ + font-size: 16px; + } + } + } + +} \ No newline at end of file diff --git a/src/Pages/About/Description/Description.tsx b/src/Pages/About/Description/Description.tsx new file mode 100644 index 0000000..bcfd9d7 --- /dev/null +++ b/src/Pages/About/Description/Description.tsx @@ -0,0 +1,57 @@ +import React from 'react' + +import Avant_Logo from "../../../Assets/avnt_big.png" + +interface Article{ + title:string, + content:string, + img?:string +} + +const articles:Article[] = [ + { + title:"The origins of Piano-Blocks-App", + content:"The idea of the app started in between years 2019/2020. The idea was to have a free alternative for creation of paino tutorial videos, which were at that time \ + much popular. The popular apps used in that time - Synthesia and Adobe After Effects - were expensive and took some time to deliver a good results, that's what \ + started this project. At first, in 2019 the app worked in SDL2 library on Windows, as a C++ software, with no UI, and command line usage. Then, the author decided to \ + make from it a multifunctional web appliacation, converting it to a user friendly web midi player. In years 2021/2022 the first version of a web app was released \ + with functions allowing user to alter the visuals, to record it's own playing, and to playback/forward the track. Next updates through 2022/2023 focues mainly on\ + improving the performance. In the year 2025 the decision was made to renew and refactor the application. The engine was updated to vite, the unit testing was implemented,\ + the design was renewed all along, new recorder was aded and new functionality as live-play. All the list of changes is very long. And now we are here, somewhere in between\ + new changes and old version", + },{ + title: "Future of the app", + content:"Currently the app is in transition of becoming a project of a start up company 'AVANT'. That may include a donation system to support the app, or, if\ + the donation system will not cover the costs to host the app, microtransactions may be implemented\ + in some detailed elements, like special premium presets, or premium effects. All the essential functionalities of the app will always remain free of charge.", + img:Avant_Logo + }, + { + title: "Author of the App", + content:"Author of the app is Tymoteusz Apriasz. A web developer since 2018, currently working as a Data Automatization and Management specialist. Tymoteusz \ + is a student of BioInformatics at the Jagiellonian University in Kraków, currently pursuing his master's degree. A hobbyst piano player - explains why this app\ + exists - who knows many programming languages to write web aps as a desktop apps - mainly C++, Typescript, Python. You can always contact him using any of the\ + information or the links on this website - he answers all of them" + }, +]; + + +export default function Description() { + + const render_articles = ():React.ReactElement[] | React.ReactElement =>{ + return articles.map((article, index) =>
+

{article.title}

+

{article.content}

+ {article.img && {article.title} +
) + } + + return ( +
+

About The App

+
+ {render_articles()} +
+
+ ) +} diff --git a/src/Pages/About/FAQ/FAQ.tsx b/src/Pages/About/FAQ/FAQ.tsx new file mode 100644 index 0000000..db08ee2 --- /dev/null +++ b/src/Pages/About/FAQ/FAQ.tsx @@ -0,0 +1,65 @@ +import React, { ReactElement } from 'react' + +interface FAQ_question{ + title:string, + answer: string | React.ReactElement +} + +interface Question_props{ + title:string, + answer: string | React.ReactElement, +} + +const questions:FAQ_question[] = [ + { + title:"Are there any cookies, or following robots on this website? If so why are they like this and not like that", + answer: <>No, Piano-Blocks-App does not use any cookies or tracking devices. The only used localizing script is Vercel Analitics + , which is used to collect following data: country origin of a request, subpages visited (like /Play, /Docs etc.), and number of requests. No target advertising data is collected + + }, + { + title:"The app lags and performes poorly during playing, what can I do?", + answer:<>Easiest way to improve performance is to use "Black-n-White" preset in configurations. If you need your own configuration of visuals, set the Effects to None, + Block-Shadow-Radius to 0, and switch off sound. Also, faster speed helps to improve performance. If the app still lags through playthrough, try playing it once, + then replaying it, without refreshing the page. The replay should be in a much better performance. + + }, + { + title:"I have some feature requests for the app, how can I propose them?", + answer:<>Please go to the Github Repository of this project, and request a feature. If you believe you can implement the feature yourself, you can contact + the app developer(s) through instagram, email, or linkedin. Contact data is displayed at the bottom of the About subpage + } +]; + +function Question({title,answer}:Question_props):ReactElement{ + + const [open,setOpen] = React.useState(false); + + return( +
{setOpen(curr => !curr)}}> +
+
+

{title}

+

{answer}

+
+
+ ); +} + +export default function FAQ():ReactElement { + + const renderQuestions = ():ReactElement[] | ReactElement =>{ + return questions.map((question,index) => + + ) + } + + return ( +
+

FAQ - Frequently Asked Questions

+
+ {renderQuestions()} +
+
+ ) +} diff --git a/src/Pages/About/Support/Support.tsx b/src/Pages/About/Support/Support.tsx new file mode 100644 index 0000000..e933887 --- /dev/null +++ b/src/Pages/About/Support/Support.tsx @@ -0,0 +1,31 @@ +import React from 'react' + +import DonateImg from "../../../Assets/Donate_Img.png" + +export default function Support():React.ReactElement { + return ( +
+
+
+
+

Support Piano-Blocks-App Project

+

Hosting of the app, design, domain, time spent developing a project - these are expensive things. Since the project was always meant to be an alternative to paid tools, every feature it offers is completely free, but it does not mean it is free for the owner :c. If you support the project, it means a lot to me, and it also makes me not lose money :-D.

+
This Month donations: 0.8$/20$
+
+
    +
  • *If you donate, the money will appear on the bar with a few days delay
  • +
  • **The 20$ margin is a approximate cost (with current 09/08 web flow) of operating the app every month, donated money over 20$ helps me (author) to buy a car
  • +
  • ***Donation system takes 30% of the Donated money, so donating 5$ means recieving by PBA 3.5$
  • +
+
+
+
+
+
+ Donate_image + Donate +
+
+
+ ) +} diff --git a/src/Pages/Main/Main.styles.scss b/src/Pages/Main/Main.styles.scss index 39885ef..4c6c217 100644 --- a/src/Pages/Main/Main.styles.scss +++ b/src/Pages/Main/Main.styles.scss @@ -5,6 +5,7 @@ overflow-y: hidden; box-sizing: border-box; height: 100vh; + position: relative; .mainHead{ width:100%; height:100%; diff --git a/src/Pages/Play/Play.tsx b/src/Pages/Play/Play.tsx index 2250b81..0d2f12e 100644 --- a/src/Pages/Play/Play.tsx +++ b/src/Pages/Play/Play.tsx @@ -69,7 +69,7 @@ export default function Play():React.ReactElement{ //Page Renders the piano, if the width is to small, it renders "Screen Width to small" //Rendering the components to handle playing management, and component to handle the piano return ( -
+
{width_height.width < 500 &&

PLEASE ROTATE THE DEVICE, SCREEN WIDTH CURRENTLY IS TO SMALL TOO DISPLAY PIANO

} {player && }