diff --git a/client/app/globals.css b/client/app/globals.css index 4d1491e..51e4d50 100644 --- a/client/app/globals.css +++ b/client/app/globals.css @@ -210,6 +210,16 @@ box-shadow: 0 0 0 2px var(--primary); outline: none; } + + /* Hide scrollbars */ + .scrollbar-hide { + -ms-overflow-style: none; + scrollbar-width: none; + } + + .scrollbar-hide::-webkit-scrollbar { + display: none; + } } diff --git a/client/app/page.tsx b/client/app/page.tsx index a6494c4..0fa7e2d 100644 --- a/client/app/page.tsx +++ b/client/app/page.tsx @@ -9,6 +9,7 @@ import { InputOTPSlot, } from "@/components/ui/input-otp"; import { Card, CardContent } from "@/components/ui/card"; +import { Heart } from "lucide-react"; import { ThemeProvider } from "next-themes"; import { VSCODE_THEMES, @@ -17,12 +18,17 @@ import { saveThemeToCookie, getThemeFromCookie, } from "@/lib/themes"; +import { LegalFooter } from "@/components/Footer"; +import { DMCAModalComponent } from "@/components/DMCAModalComponent"; +import { DisclaimerModalComponent } from "@/components/DisclaimerModalComponent"; const Home = () => { const router = useRouter(); const [newRoomCode, setNewRoomCode] = useState(""); const [currentThemeIndex, setCurrentThemeIndex] = useState(0); const [isClient, setIsClient] = useState(false); + const [isDisclaimerOpen, setIsDisclaimerOpen] = useState(false); + const [isDMCAOpen, setIsDMCAOpen] = useState(false); const nextTheme = useCallback(() => { setCurrentThemeIndex((prevIndex) => { @@ -34,18 +40,6 @@ const Home = () => { }); }, []); - const prevTheme = useCallback(() => { - setCurrentThemeIndex((prevIndex) => { - const newIndex = prevIndex === 0 - ? VSCODE_THEMES.length - 1 - : prevIndex - 1; - const theme = VSCODE_THEMES[newIndex]; - applyTheme(theme); - saveThemeToCookie(theme.id); - return newIndex; - }); - }, []); - useEffect(() => { setIsClient(true); @@ -70,10 +64,7 @@ const Home = () => { // Simple keyboard navigation const handleKeyPress = (e: KeyboardEvent) => { - if (e.key === "ArrowLeft") { - e.preventDefault(); - prevTheme(); - } else if (e.key === "ArrowRight") { + if (e.key === "ArrowRight") { e.preventDefault(); nextTheme(); } @@ -83,7 +74,7 @@ const Home = () => { return () => { window.removeEventListener("keydown", handleKeyPress); }; - }, [nextTheme, prevTheme]); + }, [nextTheme]); useEffect(() => { const joinRoom = () => { @@ -115,41 +106,23 @@ const Home = () => { return (
+ made with
+ This is a public collaborative text editor. +
++ Users can upload and share any type of content. We do not monitor, + review, or control user-generated content and are not responsible for + anything shared in these rooms. +
++ Proceed at your own discretion and use appropriate judgment when + viewing or sharing content. +
++ Osborne respects the intellectual property rights of others and expects users + to do the same. In accordance with the Digital Millennium Copyright Act (DMCA), + we will respond to valid takedown notices for copyrighted material. +
++ If you believe that content on Osborne infringes your copyright, you may + submit a DMCA takedown notice. Your notice must include all of the following: +
++ 1. Identification of the copyrighted work: Describe the + copyrighted work that you claim has been infringed, or if multiple works + are involved, provide a representative list. +
++ 2. Identification of the infringing material: Identify + the specific content that is allegedly infringing, including the room code, + specific text, files, or other content, and provide enough detail for us + to locate it. +
++ 3. Your contact information: Include your name, mailing + address, telephone number, and email address. +
++ 4. Good faith statement: Include the following statement: + "I have a good faith belief that use of the copyrighted material described + above is not authorized by the copyright owner, its agent, or the law." +
++ 5. Accuracy statement: Include the following statement: + "I swear, under penalty of perjury, that the information in this + notification is accurate and that I am the copyright owner or am authorized + to act on behalf of the owner of an exclusive right that is allegedly infringed." +
++ 6. Your signature: Provide your physical or electronic signature. +
++ DMCA Agent: [Your Name or Designated Agent] +
++ Email: dmca@[your-domain].com +
+
+ Mailing Address:
+ [Your Name/Company]
+ [Street Address]
+ [City, State ZIP Code]
+ [Country]
+
+ Please note: Only DMCA takedown notices should be sent to this contact. + Other inquiries will not receive a response. +
++ If you believe your content was removed in error, you may file a + counter-notification under Section 512(g)(3) of the DMCA. Your + counter-notification must include: +
++ 1. Your physical or electronic signature +
++ 2. Identification of the content that was removed + and its location before removal +
++ 3. A statement under penalty of perjury that you + have a good faith belief the content was removed due to mistake or + misidentification +
++ 4. Your name, address, and telephone number +
++ 5. A statement consenting to jurisdiction in your + district or the district where the service provider is located +
++ Service Provider Status: Osborne qualifies as a service + provider under the DMCA safe harbor provisions. We do not pre-screen, + monitor, or exercise editorial control over user-generated content. +
++ No Knowledge of Infringement: We have no actual knowledge + of infringing activity and are not aware of facts or circumstances from + which infringing activity is apparent. +
++ Expeditious Removal: Upon receiving a valid DMCA takedown + notice, we will expeditiously remove or disable access to the allegedly + infringing content. +
++ No Financial Benefit: We do not receive a financial + benefit directly attributable to infringing activity when we have the + right and ability to control such activity. +
++ Takedown Notices: We will respond to valid DMCA takedown + notices within 24-48 hours of receipt. +
++ Counter-Notifications: Counter-notifications will be + forwarded to the original complainant within 10 business days, and content + may be restored 10-14 business days after forwarding unless the complainant + files a court action. +
++ Invalid Notices: Notices that do not substantially comply + with DMCA requirements may not be processed. +
++ In appropriate circumstances, Osborne will terminate users who are repeat + infringers. We may also, at our sole discretion, limit access to the service + and/or terminate accounts of users who infringe any intellectual property + rights of others, whether or not there is any repeat infringement. +
++ Important: Under Section 512(f) of the DMCA, any person + who knowingly materially misrepresents that content is infringing may be + subject to liability for damages. Do not submit false claims. +
+Last Updated: {new Date().toLocaleDateString()}
++ This DMCA policy is designed to comply with the Digital Millennium Copyright Act + and protect both content creators and service providers. +
++ We respect the intellectual property rights of others and expect our users to do the same. + In accordance with the Digital Millennium Copyright Act of 1998 ("DMCA"), we will respond + expeditiously to claims of copyright infringement committed using our service. +
++ If you believe that your copyrighted work has been copied in a way that constitutes copyright + infringement and is accessible via our service, please notify our copyright agent as set forth below. +
+For your complaint to be valid under the DMCA, you must provide the following information:
+Email: copyright@webark.in
+Subject Line: DMCA Takedown Notice - Osborne Platform
++ If you believe that your material has been removed or disabled by mistake or misidentification, + you may file a counter-notification with us by providing the following information: +
++ We have adopted a policy of terminating, in appropriate circumstances and at our sole discretion, + users who are deemed to be repeat infringers. We may also limit access to our service and/or + terminate accounts of users who infringe any intellectual property rights of others. +
++ Users are solely responsible for the content they upload, share, or collaborate on through our platform. + We do not pre-screen user content but reserve the right to remove content that violates our terms + or applicable laws, including copyrighted material. +
++ This service qualifies for safe harbor protections under Section 512 of the DMCA. We act as a + service provider and do not have actual knowledge of infringing activity on our system. Upon + receiving proper notification of claimed infringement, we will expeditiously remove or disable + access to the allegedly infringing material. +
+
+ Last Updated: October 31, 2025
+ This DMCA policy is subject to change. Users will be notified of significant changes through our platform.
+
+ 1. Acceptance of Terms: By accessing or using Osborne ("the Service"), + you agree to be bound by these Terms of Service. If you do not agree to these terms, + you may not use the Service. +
++ 2. Service Description: Osborne is a real-time collaborative text editor + that allows users to create and join rooms for collaborative editing. The Service is + provided "as is" without warranty of any kind. +
++ 3. User Responsibilities: You are solely responsible for all content + you upload, share, or transmit through the Service. You agree not to use the Service + for any illegal, harmful, or inappropriate purposes. +
++ 4. Content Ownership: You retain ownership of your content. However, + by using the Service, you grant us a non-exclusive, royalty-free license to host, + store, and transmit your content as necessary to provide the Service. +
++ 5. Prohibited Conduct: You agree not to upload, share, or transmit + content that is illegal, harmful, threatening, abusive, defamatory, obscene, or + otherwise objectionable. +
++ 6. Service Availability: We do not guarantee that the Service will + be available at all times or that it will be error-free. We may modify, suspend, + or discontinue the Service at any time without notice. +
++ 1. User-Generated Content: The Service allows users to upload and + share content. We do not monitor, review, or control user-generated content and + are not responsible for any content uploaded by users. +
++ 2. No Warranty: THE SERVICE IS PROVIDED "AS IS" AND "AS AVAILABLE" + WITHOUT WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO + WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. +
++ 3. Limitation of Liability: TO THE MAXIMUM EXTENT PERMITTED BY LAW, + WE SHALL NOT BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, OR + PUNITIVE DAMAGES, OR ANY LOSS OF PROFITS OR REVENUES, WHETHER INCURRED DIRECTLY + OR INDIRECTLY, OR ANY LOSS OF DATA, USE, OR OTHER INTANGIBLE LOSSES. +
++ 4. Third-Party Content: We are not responsible for content uploaded + by third parties. Users upload content at their own risk. We do not endorse, + support, or guarantee the accuracy or reliability of any user-generated content. +
++ 5. Security: While we implement reasonable security measures, we + cannot guarantee the security of data transmitted through the Service. Users + transmit data at their own risk. +
++ 6. Indemnification: You agree to indemnify and hold us harmless + from any claims, damages, losses, or expenses arising from your use of the Service + or violation of these terms. +
++ 1. Respect for Intellectual Property: Users must respect the + intellectual property rights of others. Do not upload content that infringes + on copyrights, trademarks, or other intellectual property rights. +
++ 2. DMCA Compliance: We respond to valid DMCA takedown notices. + If you believe your copyrighted work has been infringed, please contact us with + appropriate documentation. +
++ 3. Safe Harbor: We qualify for safe harbor protections under + applicable copyright laws as we are a service provider that hosts user-generated + content without prior review or knowledge of its contents. +
++ 4. Content Removal: We reserve the right to remove any content + that we believe, in our sole discretion, violates these terms or applicable laws. +
++ 5. User License: By uploading content, you represent that you + have the right to upload such content and grant others the ability to view and + collaborate on such content through the Service. +
++ 1. Data Collection: We collect minimal data necessary to provide + the Service. We do not sell or share personal information with third parties + except as necessary to operate the Service. +
++ 2. Content Storage: Content uploaded to the Service may be + temporarily stored to enable collaboration. We make no guarantees about data + persistence or backup. +
++ 3. No Monitoring: We do not actively monitor user content or + communications. Any moderation is reactive and based on reports or automated systems. +
++ 1. Changes to Terms: We may update these terms at any time. + Continued use of the Service constitutes acceptance of updated terms. +
++ 2. Governing Law: These terms are governed by the laws of the + jurisdiction where the service operator resides, without regard to conflict + of law provisions. +
++ 3. Severability: If any provision of these terms is found + unenforceable, the remaining provisions will remain in effect. +
++ 4. Contact: For questions about these terms or to report + violations, contact the service administrator. +
+Last Updated: {new Date().toLocaleDateString()}
++ BY USING THIS SERVICE, YOU ACKNOWLEDGE THAT YOU HAVE READ, UNDERSTOOD, + AND AGREE TO BE BOUND BY THESE TERMS. +
++ By accessing and using this collaborative text editing service ("Osborne"), you acknowledge + that you have read, understood, and agree to be bound by these terms and conditions. + If you do not agree to these terms, please do not use our service. +
++ Osborne is a real-time collaborative text editing platform that allows multiple users to + simultaneously edit documents, share code, and collaborate on text-based projects. The service + is provided "as is" without warranties of any kind. +
++ IMPORTANT: Users are solely responsible for all content they create, upload, + share, or collaborate on through our platform. We do not monitor, review, or control user-generated content. +
+Your privacy is important to us. Here's how we handle your data:
+No Uptime Guarantees: Service availability is not guaranteed; planned and unplanned outages may occur.
+Data Loss Risk: Users should maintain backups; we're not liable for any data loss or corruption.
+Beta Software: This service may contain bugs, errors, or incomplete features.
+No Support Obligation: Technical support is provided on a best-effort basis.
++ TO THE MAXIMUM EXTENT PERMITTED BY LAW, WE SHALL NOT BE LIABLE FOR ANY INDIRECT, INCIDENTAL, + SPECIAL, CONSEQUENTIAL, OR PUNITIVE DAMAGES, INCLUDING BUT NOT LIMITED TO LOSS OF PROFITS, + DATA, OR USE, ARISING OUT OF OR RELATING TO YOUR USE OF THE SERVICE. +
++ Users retain ownership of their original content. By using our service, users grant us a + limited license to host, store, and facilitate collaboration on their content solely for + the purpose of providing the service. +
++ The Osborne platform, its code, design, and functionality are protected by intellectual + property laws and remain the property of WebArk and its licensors. +
++ We reserve the right to terminate or suspend access to our service at any time, without + prior notice, for conduct that we believe violates these terms or is harmful to other + users, us, or third parties. +
++ These terms shall be interpreted and governed in accordance with applicable laws. + Any disputes shall be resolved through appropriate legal channels. +
+
+ Last Updated: October 31, 2025
+ These terms are subject to change. Continued use of the service constitutes acceptance of any modifications.
+ For questions or concerns, contact: legal@webark.in
+
+ By using this service, you agree to our Terms of Service and acknowledge our disclaimers. + User uploaded content is not monitored or endorsed by us. +
+