+ );
};
export default Contact;
+
+Contact.propTypes = {
+ currentFormNameHandler: PropTypes.func,
+};
diff --git a/FrontEnd/src/components/Contact/Contact.module.css b/FrontEnd/src/components/Contact/Contact.module.css
index 3290ad865..78eff3225 100644
--- a/FrontEnd/src/components/Contact/Contact.module.css
+++ b/FrontEnd/src/components/Contact/Contact.module.css
@@ -7,8 +7,8 @@
scroll-behavior: smooth;
color: var(--main-text-color);
}
-
-.contact__title{
+
+.contact__title {
font-family: var(--font-main);
font-size: 32px;
font-weight: 700;
@@ -18,12 +18,32 @@
margin-bottom: 12px;
}
+.contact__form_container {
+ width: 60%;
+ display: flex;
+ flex-direction: column;
+ padding: 20px;
+ border-radius: 10px;
+ height: 400px;
+ position: relative;
+}
+
.contact__link_container {
margin-right: 100px;
max-width: 234px;
max-height: 1400px;
}
+.contact__label {
+ font-family: var(--font-main);
+ font-size: 16px;
+ font-weight: 400;
+ line-height: 20px;
+ margin-bottom: 5px;
+ margin-top: 20px;
+ display: block;
+}
+
.link {
display: flex;
flex-direction: column;
@@ -41,7 +61,7 @@
margin-bottom: 24px;
}
-.link_text__active{
+.link_text__active {
width: 234px;
color: var(--main-header-color);
text-transform: uppercase;
@@ -52,14 +72,14 @@
color: var(--main-header-color);
}
-.contact__img1{
+.contact__img1 {
width: auto;
height: 266px;
margin-left: -100px;
margin-top: 332px;
}
-.contact__text_container{
+.contact__text_container {
display: flex;
flex-direction: column;
max-width: 971px;
@@ -72,7 +92,7 @@
line-height: 22px;
}
-.text_content__margin_bottom{
+.text_content__margin_bottom {
margin-bottom: 24px;
font-family: var(--font-main);
font-size: 14px;
@@ -80,19 +100,203 @@
line-height: 22px;
}
-.text_content__heading{
+.text_content__heading {
margin-top: 24px;
-
}
.custom-list {
- margin:0px;
- padding-left: 16px;
+ margin: 0px;
+ padding-left: 16px;
}
-.custom-list__item{
+.custom-list__item {
font-family: var(--font-main);
font-size: 14px;
font-weight: 400;
line-height: 22px;
-}
\ No newline at end of file
+}
+
+.contact__input{
+ width: 400px;
+ padding: 10px;
+ border: 1px solid var(--border-color);
+ border-radius: 1px;
+ transition: border-color 0.3s ease;
+ box-sizing: border-box;
+ height: 30px;
+ resize: none;
+ outline: none;;
+}
+
+.contact__textarea,
+.contact__select {
+ width: 400px;
+ padding: 10px;
+ border: 1px solid var(--border-color);
+ border-radius: 4px;
+ border: 1px solid var(--border-color);
+ transition: border-color 0.3s ease;
+ box-sizing: border-box;
+ min-height: 40px;
+ max-height: 60px;
+ resize: none;
+}
+
+.contact__textarea {
+ resize: vertical;
+ min-height: 120px;
+}
+
+.contact__input::placeholder {
+ opacity: 0.3;
+}
+.contact__input:focus,
+.contact__textarea:focus,
+.contact__select:focus {
+ border-color: #D9D9D9;
+}
+
+.contact__select.placeholder {
+ color: gray;
+}
+
+.contact__button_send {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ background: #1F9A7C;
+ box-shadow: 0px 2px 0px 0px rgba(0, 0, 0, 0.04);
+ color: white;
+ font-feature-settings: 'calt' off;
+ font-style: normal;
+ border-radius: 4px;
+ border: 1px;
+ gap: 10px;
+ font-family: var(--font-main);
+ font-size: 16px;
+ font-weight: 600;
+ line-height: 20px;
+ letter-spacing: -0.01em;
+ text-align: center;
+ cursor: pointer;
+ width: 100px;
+ height: 32px;
+}
+
+.contact__button_send:hover {
+ background-color: #218838;
+}
+
+.contact__button_cancel {
+ display: flex;
+ background-color: #e74c3c;
+ justify-content: center;
+ align-items: center;
+ box-shadow: 0px 2px 0px 0px rgba(0, 0, 0, 0.04);
+ color: white;
+ font-feature-settings: 'calt' off;
+ font-style: normal;
+ border-radius: 4px;
+ border: 1px;
+ gap: 10px;
+ font-family: var(--font-main);
+ font-size: 16px;
+ font-weight: 600;
+ line-height: 20px;
+ letter-spacing: -0.01em;
+ text-align: center;
+ cursor: pointer;
+ width: 100px;
+ height: 32px;
+
+}
+
+.contact__button_cancel:hover {
+ background-color: #c82333;
+}
+
+.contact__error {
+ display: flex;
+ align-items: flex-start;
+ gap: 10px;
+ align-self: stretch;
+ color: var(--red-red-100, #f34444);
+ font-family: var(--font-messages);
+ font-size: 12px;
+ font-style: normal;
+ font-weight: 400;
+ line-height: 16px;
+}
+
+.contact__button_container {
+ display: flex;
+ gap: 10px;
+ justify-content: flex-start;
+ margin-top: 20px;
+}
+
+.contact__button_modal_container {
+ display: flex;
+ gap: 10px;
+ justify-content: center;
+ align-items: center;
+ margin-top: 20px;
+
+}
+
+.modal_feedback {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ background-color: rgba(0, 0, 0, 0.7);
+ z-index: 1000;
+
+}
+
+.modal_feedback_content {
+ background-color: white;
+ padding: 20px;
+ position: relative;
+ width: 550px;
+ height: 150px;
+ text-align: center;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+
+}
+
+.contact__button_modal_container {
+ display: flex;
+ gap: 15px;
+ justify-content: center;
+ align-items: center;
+ margin-top: 50px;
+
+}
+
+.modal_feedback_close {
+ position: absolute;
+ top: 10px;
+ right: 10px;
+ background: transparent;
+ border: none;
+ cursor: pointer;
+}
+
+.modal_feedback_close img {
+ width: 20px;
+ height: 20px;
+}
+
+.contact__select::placeholder {
+ color: #888888;
+ font-size: 16px;
+ opacity: 1
+}
diff --git a/FrontEnd/src/components/Contact/text.js b/FrontEnd/src/components/Contact/text.js
index 7449a751a..2ea592551 100644
--- a/FrontEnd/src/components/Contact/text.js
+++ b/FrontEnd/src/components/Contact/text.js
@@ -1,183 +1,10 @@
const contactText = {
id: 1,
- title: 'Contact',
+ title: 'Зворотній зв\'язок',
level: 2,
content: [
- {
- id: 2,
- type: 'paragraph',
- text: 'Effective Date:November 2, 2022'
- },
- {
- id: 3,
- type: 'heading',
- level: 4,
- text: 'What is Kickstarter\'s copyright policy?'
- },
- {
- id: 4,
- type: 'paragraph',
- text: 'If you believe your copyright is being infringed,'+
- ' you can report the alleged violation . '
- },
- {
- id: 5,
- type: 'paragraph',
- text: 'If your project was the subject of a takedown notice,'+
- ' you can submit a counter-notification . '
- },
- {
- id: 6,
- type: 'paragraph',
- text: 'If you’ve backed a project that was the subject of a'+
- ' takedown notice, you can learn what that means . '
- },
- {
- id: 7,
- type: 'paragraph',
- text: 'In addition to complying with the DMCA safe harbor,'+
- ' Kickstarter may in its sole discretion terminate user accounts'+
- ' of those who are repeat infringers of the intellectual property rights of others.'+
- ' Kickstarter also reserves the right to terminate user accounts based on a single instance'+
- ' of infringement. Kickstarter does not control content hosted on third party websites,'+
- ' and cannot remove content from sites it does not own or control.'+
- ' If you are the copyright owner of content hosted on a third party site,'+
- ' and you have not authorized the use of your content, please contact'+
- ' the administrator of that website directly to have the content removed.'
- },
- {
- id: 8,
- type: 'heading',
- level: 4,
- text: 'How do I report a copyright violation?'
- },
- {
- id: 9,
- type: 'paragraph',
- text: 'If you\'re not sure whether material on Kickstarter infringes'+
- ' on your copyright, please consult with an attorney before filing a DMCA notification.'
- },
- {
- id: 10,
- type: 'paragraph__margin_bottom',
- text: 'Copyright laws of the United States require you to consider copyright defenses,'+
- ' limitations, or exceptions, such as the fair use doctrine, before sending a notice.'+
- ' If you misrepresent that material infringes your copyright, you may be subject'+
- ' to liability for damages, including costs and attorneys\' fees incurred by creators or other parties.'
- },
- {
- id: 11,
- type: 'paragraph__margin_bottom',
- text: 'If you have a good faith belief that any materials accessible'+
- ' on or from https://www.kickstarter.com/ (the “Kickstarter Platform” )'+
- ' infringe your copyright, you may request removal of those materials (or access'+
- ' to them) from the Kickstarter Platform by filing a DMCA notification'+
- ' (“Take Down Notice” ) by completing our {dmca_form_link}.'+
- ' In accordance with Section 512 of the DMCA, your written notice must include'+
- ' substantially the following information (please note that'+
- ' all information must be submitted in English):'
- },
- {
- id: 12,
- type: 'paragraph',
- text: 'an electronic or physical signature of the person authorized to'+
- ' act on behalf of the owner of the copyright interest;'
- },
- {
- id: 13,
- type: 'paragraph',
- text: 'a description of the copyrighted work that you claim has been infringed;'+
- '” “we,” or “us”) provides services that help people bring creative projects to life'+
- ' (our "Services"). Our main service is a funding platform for creative projects.'+
- ' We are a Public Benefit Corporation based in New York, NY.'
- },
- {
- id: 14,
- type: 'paragraph',
- text: 'a description of where the material that you claim is infringing is'+
- ' located on the Kickstarter website, in a sufficiently precise manner to'+
- ' allow Kickstarter to locate the material - please be as specific as possible,'+
- ' including the title of the work, the type of media, and any other identifying information;'
- },
- {
- id: 15,
- type: 'paragraph',
- text: 'adequate information by which we can contact you (including your name,'+
- ' your postal address, your telephone number, and,'+
- ' if available and preferably, your email address);'
- },
- {
- id: 16,
- type: 'paragraph',
- text: 'the following statements:'
- },
- {
- id: 17,
- type: 'paragraph',
- text: '“I hereby understand that under 17 U.S.C § 512(f) I may be liable for any damages'+
- ', including costs and attorneys \'fees, if I knowingly and materially misrepresent'+
- ' that reported material or activity is infringing”'
- },
- {
- id: 18,
- type: 'paragraph',
- text: '”I have a good faith belief that the disputed use is not authorized by'+
- ' the copyright owner, its agent, or the law (e.g., fair use)”'
- },
- {
- id: 19,
- type: 'paragraph',
- text: '“I hereby state that the information in this notice is accurate and,'+
- ' under penalty of perjury, I am the copyright owner or authorized to act on behalf'+
- ' of the owner of an exclusive right under the copyright law that is allegedly infringed”.'
- },
- {
- id: 20,
- type: 'paragraph__margin_bottom',
- text: '“I declare under penalty of perjury that I have considered whether the potential'+
- ' infringement is authorized as an exception or limitation under applicable law,'+
- ' such as fair use under U.S. Copyright Law.”'
- },
- {
- id: 21,
- type: 'paragraph__margin_bottom',
- text: 'Submitting your notification via our form is the fastest way to file your'+
- ' claim, but you may also send the required information'+
- ' to our copyright agent at the following address:'
- },
- {
- id: 22,
- type: 'paragraph',
- text: 'Kickstarter, PBC'
- },
- {
- id: 23,
- type: 'paragraph',
- text: 'Attn: Copyright Agent'
- },
- {
- id: 24,
- type: 'paragraph',
- text: '228 Park Ave S PMB 59430'
- },
- {
- id: 25,
- type: 'paragraph',
- text: 'New York, New York 10003-1502 US'
- },
- {
- id: 26,
- type: 'paragraph',
- text: 'Kickstarter processes Take Down Notices as provided by the DMCA.'+
- ' Please note that Kickstarter reserves the right to request additional'+
- ' information from you to assist us in processing a Take Down Notice,'+
- ' and may not take final action on a Take Down Notice until all requirements'+
- ' are satisfied. Note that we reserve the right to refuse to action a'+
- ' Take Down Notice if any of the attestations are omitted or not substantially '+
- 'complete. The easiest way to ensure that your attestations'+
- ' are complete is to submit using our DMCA form.'
- },
],
};
-export default contactText;
\ No newline at end of file
+export default contactText;
+
diff --git a/FrontEnd/src/components/Footer/Top/FooterPolicy.jsx b/FrontEnd/src/components/Footer/Top/FooterPolicy.jsx
index bfec0d219..35d784df0 100644
--- a/FrontEnd/src/components/Footer/Top/FooterPolicy.jsx
+++ b/FrontEnd/src/components/Footer/Top/FooterPolicy.jsx
@@ -14,7 +14,7 @@ const POLICY_LINKS = [
},
{
id: 'i3',
- title: 'Contact',
+ title: 'Зворотній зв\'язок',
link: 'Contact/'
}
];
diff --git a/FrontEnd/src/components/MiniComponents/DropDownMenu/DropDownMenu.jsx b/FrontEnd/src/components/MiniComponents/DropDownMenu/DropDownMenu.jsx
new file mode 100644
index 000000000..8ab5b9aaa
--- /dev/null
+++ b/FrontEnd/src/components/MiniComponents/DropDownMenu/DropDownMenu.jsx
@@ -0,0 +1,59 @@
+import { Select, Space } from 'antd';
+import PropTypes from 'prop-types';
+import preventEnterSubmit from '../../../utils/preventEnterSubmit';
+import css from './DropDownMenu.module.css';
+
+export default function DropDownMenu(props){
+ return (
+