Files
encoach_frontend_new_v3/node_modules/.vite/deps/chunk-PP5CJGVQ.js
Yamen Ahmad 1e688107fa feat: redesign Exams List page to show submitted custom exams
- Added Custom Exams tab showing all exams from Generation page
- Displays title, module badges, duration, and status
- Added Create Exam button
- Kept Exam Sessions tab for institutional sessions
- Search filters across exams

Made-with: Cursor
2026-04-12 11:07:54 +04:00

93 lines
2.9 KiB
JavaScript

import {
useLayoutEffect2
} from "./chunk-5ZB7HMJW.js";
import {
require_react
} from "./chunk-QCHXOAYK.js";
import {
__toESM
} from "./chunk-WOOG5QLI.js";
// node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs
var React2 = __toESM(require_react(), 1);
var React22 = __toESM(require_react(), 1);
// node_modules/@radix-ui/react-use-effect-event/dist/index.mjs
var React = __toESM(require_react(), 1);
var useReactEffectEvent = React[" useEffectEvent ".trim().toString()];
var useReactInsertionEffect = React[" useInsertionEffect ".trim().toString()];
// node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs
var useInsertionEffect = React2[" useInsertionEffect ".trim().toString()] || useLayoutEffect2;
function useControllableState({
prop,
defaultProp,
onChange = () => {
},
caller
}) {
const [uncontrolledProp, setUncontrolledProp, onChangeRef] = useUncontrolledState({
defaultProp,
onChange
});
const isControlled = prop !== void 0;
const value = isControlled ? prop : uncontrolledProp;
if (true) {
const isControlledRef = React2.useRef(prop !== void 0);
React2.useEffect(() => {
const wasControlled = isControlledRef.current;
if (wasControlled !== isControlled) {
const from = wasControlled ? "controlled" : "uncontrolled";
const to = isControlled ? "controlled" : "uncontrolled";
console.warn(
`${caller} is changing from ${from} to ${to}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`
);
}
isControlledRef.current = isControlled;
}, [isControlled, caller]);
}
const setValue = React2.useCallback(
(nextValue) => {
var _a;
if (isControlled) {
const value2 = isFunction(nextValue) ? nextValue(prop) : nextValue;
if (value2 !== prop) {
(_a = onChangeRef.current) == null ? void 0 : _a.call(onChangeRef, value2);
}
} else {
setUncontrolledProp(nextValue);
}
},
[isControlled, prop, setUncontrolledProp, onChangeRef]
);
return [value, setValue];
}
function useUncontrolledState({
defaultProp,
onChange
}) {
const [value, setValue] = React2.useState(defaultProp);
const prevValueRef = React2.useRef(value);
const onChangeRef = React2.useRef(onChange);
useInsertionEffect(() => {
onChangeRef.current = onChange;
}, [onChange]);
React2.useEffect(() => {
var _a;
if (prevValueRef.current !== value) {
(_a = onChangeRef.current) == null ? void 0 : _a.call(onChangeRef, value);
prevValueRef.current = value;
}
}, [value, prevValueRef]);
return [value, setValue, onChangeRef];
}
function isFunction(value) {
return typeof value === "function";
}
var SYNC_STATE = Symbol("RADIX:SYNC_STATE");
export {
useControllableState
};
//# sourceMappingURL=chunk-PP5CJGVQ.js.map