All of these have been applied to the “Day” component. So each element on the “All Days” menu slider.
import { useState } from "react";
import { Data, Override } from "framer";
const state = Data({ selectedDay: 1 }); // Start with Day 1 selected
export function makeDayOverride(dayIndex) {
return {
onTap() {
state.selectedDay = dayIndex;
},
animate: state.selectedDay === dayIndex ? "On" : "Off",
};
}
import { Data, Override } from "framer"
const appState = Data({ selectedDay: 1 })
export function makeDayOverride(dayNumber) {
return {
onTap() {
appState.selectedDay = dayNumber
},
animate: appState.selectedDay === dayNumber ? "Day On" : "Day Off",
}
}
import { Data, Override } from "framer"
const appState = Data({ selectedDay: 1 })
export function makeDayOverride(dayNumber, onClick) {
return {
onTap() {
appState.selectedDay = dayNumber
if (onClick) onClick() // triggers internal Day logic too
},
animate: appState.selectedDay === dayNumber ? "Day On" : "Day Off",
}
}
import { Data, Override } from "framer"
const appState = Data({ selectedDay: 1 })
export function makeDayOverride(dayNumber: number): Override {
return {
onTap() {
appState.selectedDay = dayNumber
},
animate: appState.selectedDay === dayNumber ? "Day On" : "Day Off",
}
}
// /code/makeDayOverride.tsx
import { Data, Override } from "framer"
const state = Data({ selectedDay: 1 })
export function makeDayOverride(dayIndex: number): Override {
return {
onTap() {
state.selectedDay = dayIndex
},
// IMPORTANT: use `variant`, not `animate`
variant: state.selectedDay === dayIndex ? "Day On" : "Day Off",
// Don't return any other props (no width, height, style, transition, etc.)
}
}
// /code/makeDayOverride.tsx
import { Data, Override } from "framer"
const state = Data({ selectedDay: 1 })
export function makeDayOverride(dayIndex: number): Override {
return {
// The component already switches itself ON when clicked,
// so we only update the shared state here.
onTap() {
state.selectedDay = dayIndex
},
// This forces every other Day to display "Off"
variant: state.selectedDay === dayIndex ? undefined : "Day Off",
}
}
// /code/makeDayOverride.tsx
import { Data, Override } from "framer"
const state = Data({ selectedDay: 1 })
// Apply this SAME override to every Day instance.
export function dayAutoOverride(props: any): Override {
// Read the day number from your component variable "Day #"
const dayIndex = Number(props["Day #"]) || 0
return {
onTap() {
state.selectedDay = dayIndex
},
// Your visual editor already turns the clicked item "On".
// We only force others to "Off" and leave the clicked one alone.
variant: state.selectedDay === dayIndex ? undefined : "Day Off",
}
}