32 | The page you're looking for doesn't exist or has been moved. 33 | This section of the track is under construction. 34 |
35 | 36 |{message}
71 | {linkText && linkHref && ( 72 | 76 | {linkText}87 | For the best experience with charts and data visualizations, we recommend using a larger screen. 88 |
89 |Connect with other F1 fans, discuss races, share analysis, and get the latest updates from the Fastlytics team. We're building a community of passionate Formula 1 fans who love data.
35 | 36 |161 | {body} 162 |
163 | ) 164 | }) 165 | FormMessage.displayName = "FormMessage" 166 | 167 | export { 168 | useFormField, 169 | Form, 170 | FormItem, 171 | FormLabel, 172 | FormControl, 173 | FormDescription, 174 | FormMessage, 175 | FormField, 176 | } 177 | -------------------------------------------------------------------------------- /src/components/ui/alert-dialog.tsx: -------------------------------------------------------------------------------- 1 | import * as React from "react" 2 | import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog" 3 | 4 | import { cn } from "@/lib/utils" 5 | import { buttonVariants } from "@/components/ui/button" 6 | 7 | const AlertDialog = AlertDialogPrimitive.Root 8 | 9 | const AlertDialogTrigger = AlertDialogPrimitive.Trigger 10 | 11 | const AlertDialogPortal = AlertDialogPrimitive.Portal 12 | 13 | const AlertDialogOverlay = React.forwardRef< 14 | React.ElementRefNo team pace data available for this session.
38 |Last updated: {new Date().toLocaleDateString()}
27 | 28 |30 | By using Fastlytics (the "Service"), you agree to be bound by these Terms of Service ("Terms"). If you disagree with any part of the terms, then you do not have permission to access the Service. 31 |
32 | 33 |35 | When you create an account with us, you guarantee that the information you provide us is accurate, complete, and current at all times. Inaccurate, incomplete, or obsolete information may result in the immediate termination of your account on the Service. You are responsible for maintaining the confidentiality of your account and password. 36 |
37 | 38 |40 | The Service and its original content (excluding Content provided by users), features and functionality are and will remain the exclusive property of Fastlytics and its licensors. The Service is protected by copyright, trademark, and other laws of both the [Your Country] and foreign countries. Our trademarks and trade dress may not be used in connection with any product or service without the prior written consent of Fastlytics. 41 |
42 |43 | Formula 1 related data is sourced from publicly available APIs (e.g., FastF1 library) and is subject to their respective terms and conditions. Fastlytics is not affiliated with Formula One group companies. F1, FORMULA ONE, FORMULA 1, FIA FORMULA ONE WORLD CHAMPIONSHIP, GRAND PRIX and related marks are trade marks of Formula One Licensing B.V. 44 |
45 | 46 |48 | Our Service may allow you to post, link, store, share and otherwise make available certain information, text, graphics, videos, or other material ("Content"). You are responsible for the Content that you post on or through the Service, including its legality, reliability, and appropriateness. 49 |
50 | 51 |53 | You may use the Service only for lawful purposes and in accordance with Terms. You agree not to use the Service in any way that violates any applicable national or international law or regulation. 54 |
55 | 56 |58 | We may terminate or suspend your account and bar access to the Service immediately, without prior notice or liability, under our sole discretion, for any reason whatsoever and without limitation, including but not limited to a breach of the Terms. 59 |
60 | 61 |63 | In no event shall Fastlytics, nor its directors, employees, partners, agents, suppliers, or affiliates, be liable for any indirect, incidental, special, consequential or punitive damages, including without limitation, loss of profits, data, use, goodwill, or other intangible losses, resulting from your access to or use of or inability to access or use the Service. 64 |
65 | 66 |68 | Your use of the Service is at your sole risk. The Service is provided on an "AS IS" and "AS AVAILABLE" basis. The Service is provided without warranties of any kind, whether express or implied, including, but not limited to, implied warranties of merchantability, fitness for a particular purpose, non-infringement or course of performance. Data accuracy is dependent on upstream sources and is not guaranteed. 69 |
70 | 71 |73 | These Terms shall be governed and construed in accordance with the laws of India, without regard to its conflict of law provisions. 74 |
75 | 76 |78 | We reserve the right, at our sole discretion, to modify or replace these Terms at any time. We will provide notice of any changes by posting the new Terms of Service on this page. 79 |
80 | 81 |83 | If you have any questions about these Terms, please contact us at contact@fastlytics.app 84 |
85 |
68 |
{biggestGain.driver} gained {biggestGain.change} places
71 |Moved from P{biggestGain.from} to P{biggestGain.to} on Lap {biggestGain.lap}
72 |76 | No Significant Gains 77 |
78 |No driver gained more than 1 position in a single lap.
79 |
85 |
{biggestLoss.driver} lost {Math.abs(biggestLoss.change)} places
88 |Moved from P{biggestLoss.from} to P{biggestLoss.to} on Lap {biggestLoss.lap}
89 |93 | No Significant Losses 94 |
95 |No driver lost more than 1 position in a single lap.
96 |{driverDetails.nationality || 'N/A'}
72 | {/* Safely format date */} 73 |74 | Born: {driverDetails.dateOfBirth ? new Date(driverDetails.dateOfBirth).toLocaleDateString() : 'N/A'} 75 |
76 |{driverDetails.bio}
84 |{driverDetails.careerStats.wins ?? '-'}
93 |Wins
94 |{driverDetails.careerStats.podiums ?? '-'}
97 |Podiums
98 |{driverDetails.careerStats.poles ?? '-'}
101 |Pole Positions
102 |{driverDetails.careerStats.championships ?? '-'}
105 |Championships
106 |Last updated: {new Date().toLocaleDateString()}
27 | 28 |30 | Welcome to Fastlytics ("we", "us", "our"). We are committed to protecting your personal information and your right to privacy. If you have any questions or concerns about this privacy notice, or our practices with regards to your personal information, please contact us. 31 |
32 | 33 |35 | We collect personal information that you voluntarily provide to us when you register on the application, express an interest in obtaining information about us or our products and services, when you participate in activities on the application or otherwise when you contact us. 36 |
37 |38 | The personal information that we collect depends on the context of your interactions with us and the application, the choices you make and the products and features you use. The personal information we collect may include the following: email address, username, password (hashed). 39 |
40 |41 | We do not process sensitive information. 42 |
43 | 44 |46 | We use personal information collected via our application for a variety of business purposes described below. We process your personal information for these purposes in reliance on our legitimate business interests, in order to enter into or perform a contract with you, with your consent, and/or for compliance with our legal obligations. We indicate the specific processing grounds we rely on next to each purpose listed below. 47 |
48 |58 | We only share information with your consent, to comply with laws, to provide you with services, to protect your rights, or to fulfill business obligations. We do not sell your personal information. 59 |
60 |61 | We may need to share your information with third-party vendors, service providers, contractors or agents who perform services for us or on our behalf and require access to such information to do that work (e.g., Supabase for authentication and database hosting). 62 |
63 | 64 |66 | We will only keep your personal information for as long as it is necessary for the purposes set out in this privacy notice, unless a longer retention period is required or permitted by law (such as tax, accounting or other legal requirements). 67 |
68 | 69 |71 | We have implemented appropriate technical and organizational security measures designed to protect the security of any personal information we process. However, despite our safeguards and efforts to secure your information, no electronic transmission over the Internet or information storage technology can be guaranteed to be 100% secure. 72 |
73 | 74 |76 | We do not knowingly solicit data from or market to children under 18 years of age. 77 |
78 | 79 |81 | You may review, change, or terminate your account at any time by logging into your account and updating your profile or by contacting us using the contact information provided. 82 |
83 | 84 |86 | We may update this privacy notice from time to time. The updated version will be indicated by an updated "Last updated" date and the updated version will be effective as soon as it is accessible. 87 |
88 | 89 |91 | If you have questions or comments about this notice, you may email us at contact@fastlytics.app 92 |
93 | 94 |{teamDetails.nationality || 'N/A'}
76 |Base: {teamDetails.base || 'N/A'}
77 |First Entry: {teamDetails.firstEntry || 'N/A'}
78 |{teamDetails.bio}
86 |{teamDetails.careerStats.wins ?? '-'}
95 |Wins
96 |{teamDetails.careerStats.podiums ?? '-'}
99 |Podiums
100 |{teamDetails.careerStats.poles ?? '-'}
103 |Pole Positions
104 |{teamDetails.careerStats.constructorsChampionships ?? '-'}
107 |Constructors' Titles
108 |{teamDetails.careerStats.driversChampionships ?? '-'}
111 |Drivers' Titles
112 |