One Calendar is a privacy-first calendar web app built with Next.js. It has modern security features, including e2ee, password-protected sharing, and self-destructing share links πŸ“… calendar.xyehr.cn
5
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix: update share page legal links placement

+20 -31
+20 -31
components/app/profile/shared-event.tsx
··· 59 59 handle?: string; 60 60 } 61 61 62 - const APP_VERSION = process.env.NEXT_PUBLIC_APP_VERSION ?? "unknown"; 63 - 64 - function SharePageFooter({ isZh }: { isZh: boolean }) { 62 + function SharePageLegalLinks({ isZh }: { isZh: boolean }) { 65 63 return ( 66 - <footer className="fixed inset-x-0 bottom-0 z-20 px-4 pb-[calc(0.75rem+env(safe-area-inset-bottom))] pt-3"> 67 - <div className="mx-auto w-full max-w-5xl"> 68 - <div className="flex items-center justify-between rounded-2xl border border-border/60 bg-background/80 px-3 py-2 text-xs text-muted-foreground shadow-lg shadow-black/5 backdrop-blur-md supports-[backdrop-filter]:bg-background/65"> 69 - <span className="rounded-full bg-muted px-2 py-1 font-mono text-[11px] tracking-wide text-foreground/80"> 70 - v{APP_VERSION} 71 - </span> 72 - <div className="flex items-center gap-1"> 73 - <Link 74 - href="/privacy" 75 - className="rounded-md px-2 py-1 transition-colors hover:bg-muted hover:text-foreground" 76 - > 77 - {isZh ? "ιšη§ζ”Ώη­–" : "Privacy Policy"} 78 - </Link> 79 - <span className="text-muted-foreground/50">β€’</span> 80 - <Link 81 - href="/terms" 82 - className="rounded-md px-2 py-1 transition-colors hover:bg-muted hover:text-foreground" 83 - > 84 - {isZh ? "服劑村款" : "Terms of Service"} 85 - </Link> 86 - </div> 87 - </div> 88 - </div> 89 - </footer> 64 + <div className="fixed bottom-4 right-4 z-20 flex items-center gap-1 rounded-full border border-border/60 bg-background/80 px-3 py-1.5 text-xs text-muted-foreground shadow-lg shadow-black/5 backdrop-blur-md supports-[backdrop-filter]:bg-background/65"> 65 + <Link 66 + href="/privacy" 67 + className="rounded-md px-2 py-1 transition-colors hover:bg-muted hover:text-foreground" 68 + > 69 + {isZh ? "ιšη§ζ”Ώη­–" : "Privacy Policy"} 70 + </Link> 71 + <span className="text-muted-foreground/50">β€’</span> 72 + <Link 73 + href="/terms" 74 + className="rounded-md px-2 py-1 transition-colors hover:bg-muted hover:text-foreground" 75 + > 76 + {isZh ? "服劑村款" : "Terms of Service"} 77 + </Link> 78 + </div> 90 79 ); 91 80 } 92 81 ··· 362 351 <p className="mt-6 text-lg font-medium text-gray-600 dark:text-gray-300"> 363 352 {isZh ? "加载中..." : "Loading..."} 364 353 </p> 365 - <SharePageFooter isZh={isZh} /> 354 + <SharePageLegalLinks isZh={isZh} /> 366 355 </div> 367 356 ); 368 357 } ··· 494 483 </Card> 495 484 </motion.div> 496 485 </div> 497 - <SharePageFooter isZh={isZh} /> 486 + <SharePageLegalLinks isZh={isZh} /> 498 487 </div> 499 488 ); 500 489 } ··· 562 551 </Card> 563 552 </motion.div> 564 553 </div> 565 - <SharePageFooter isZh={isZh} /> 554 + <SharePageLegalLinks isZh={isZh} /> 566 555 </div> 567 556 ); 568 557 } ··· 763 752 </Card> 764 753 </motion.div> 765 754 </div> 766 - <SharePageFooter isZh={isZh} /> 755 + <SharePageLegalLinks isZh={isZh} /> 767 756 </div> 768 757 ); 769 758 }