Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 15 additions & 1 deletion frontend/app/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ export default function Home() {
</div>

<footer
className="mx-auto mt-5 flex w-full max-w-3xl flex-col gap-2 rounded-2xl border border-brand-secondary/15 bg-white/95 px-5 py-4 text-xs text-brand-secondary/80 shadow-sm sm:flex-row sm:items-center sm:justify-between"
className="mx-auto mt-5 flex w-full max-w-3xl flex-col gap-2 rounded-2xl border border-brand-secondary/15 bg-white/95 px-5 py-4 text-xs leading-relaxed text-brand-secondary/80 shadow-sm"
aria-label="Product scope and data attribution"
>
<p className="font-semibold text-brand-primary">
Expand All @@ -69,6 +69,20 @@ export default function Home() {
ODbL
</a>
</p>
<div className="mt-2 flex flex-col gap-2 border-t border-brand-secondary/10 pt-3 sm:flex-row sm:items-center sm:justify-between sm:gap-5">
<p>
Thank you to the Open Food Facts community for making open food data
available. Want to help? Contributions are always voluntary.
</p>
<a
href="https://connect.openfoodfacts.org/join-the-contributor-skill-pool-open-food-facts"
target="_blank"
rel="noopener noreferrer"
className="inline-flex min-h-11 shrink-0 items-center gap-1 self-start rounded-lg px-2 py-2 font-semibold text-brand-primary underline decoration-brand-primary/30 underline-offset-4 transition hover:decoration-brand-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-primary sm:self-auto"
>
Contribute to Open Food Facts <span aria-hidden="true">↗</span>
</a>
</div>
</footer>
</main>
);
Expand Down
10 changes: 3 additions & 7 deletions frontend/components/XamanLoginPanel.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -1615,8 +1615,8 @@ export function XamanLoginPanel() {
</p>
<p className="mt-0.5 text-xs leading-relaxed text-brand-secondary/75">
{loginSurfaceMode === "embedded"
? "One button safely ends both sessions."
: "Sign out on this device when you’re finished."}
? "Log out of CalorieToken.net and CalorieApp on this device."
: "Log out on this device when you’re finished."}
</p>
</div>
<button
Expand All @@ -1625,11 +1625,7 @@ export function XamanLoginPanel() {
disabled={isLoggingOut}
className="inline-flex min-h-11 items-center justify-center rounded-full bg-brand-primary px-5 py-2.5 text-sm font-bold text-white shadow-sm transition hover:-translate-y-0.5 hover:opacity-90 hover:shadow-md disabled:cursor-not-allowed disabled:opacity-70"
>
{isLoggingOut
? "Signing out..."
: loginSurfaceMode === "embedded"
? "Sign out everywhere"
: "Sign out"}
{isLoggingOut ? "Logging out..." : "Log out"}
</button>
</div>

Expand Down
2 changes: 1 addition & 1 deletion tools/tests/xaman_login_start_retry.test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ test("login surface fails closed until an embedded parent is trusted", async ()
assert.match(source, /type:\s*"calorieapp:bridge:initialized"/);
assert.match(source, /event\.data\?\.type === "calorieapp:logout"/);
assert.match(source, /type:\s*"calorieapp:logout:request"/);
assert.match(source, /Sign out everywhere/);
assert.match(source, /Log out of CalorieToken\.net and CalorieApp on this device\./);
assert.match(source, /requestCalorieAppLogout\(\)/);
});

Expand Down