First Commit

This commit is contained in:
cesnimda
2026-03-21 11:55:27 +01:00
commit 2e8a29b4d0
1757 changed files with 166084 additions and 0 deletions
@@ -0,0 +1,15 @@
'use client';
import { use } from 'react';
// @project
import { ConfigContext } from '@/contexts/ConfigContext';
/*************************** HOOKS - CONFIG ***************************/
export default function useConfig() {
const context = use(ConfigContext);
if (!context) throw new Error('useSConfig must be use inside ConfigProvider');
return context;
}
@@ -0,0 +1,43 @@
import { useState, useEffect } from 'react';
const useFocusWithin = () => {
const [isFocusWithin, setIsFocusWithin] = useState(false);
useEffect(() => {
// Event handler for keydown events
const handleKeyDown = (event) => {
if (event.key === 'Tab') {
setIsFocusWithin(true);
}
};
// Event handler for mousedown events
const handleMouseDown = () => {
setIsFocusWithin(false);
};
// Function to add event listeners
const addEventListeners = () => {
document.addEventListener('keydown', handleKeyDown);
document.addEventListener('mousedown', handleMouseDown);
};
// Function to remove event listeners
const removeEventListeners = () => {
document.removeEventListener('keydown', handleKeyDown);
document.removeEventListener('mousedown', handleMouseDown);
};
// Add event listeners when the component mounts
addEventListeners();
// Cleanup event listeners when the component unmounts
return () => {
removeEventListeners();
};
}, []);
return isFocusWithin;
};
export default useFocusWithin;
@@ -0,0 +1,45 @@
import { useState, useEffect, useCallback } from 'react';
/*************************** HOOKS - LOCAL STORAGE ***************************/
export default function useLocalStorage(key, defaultValue) {
// Load initial state from localStorage or fallback to default
const readValue = () => {
if (typeof window === 'undefined') return defaultValue;
try {
const item = localStorage.getItem(key);
return item ? JSON.parse(item) : defaultValue;
} catch (err) {
console.warn(`Error reading localStorage key “${key}”:`, err);
return defaultValue;
}
};
const [state, setState] = useState(readValue);
// Sync to localStorage whenever state changes
useEffect(() => {
try {
localStorage.setItem(key, JSON.stringify(state));
} catch (err) {
console.warn(`Error setting localStorage key “${key}”:`, err);
}
}, [key, state]);
// Update single field
const setField = useCallback((key, value) => {
setState((prev) => ({
...prev,
[key]: value
}));
}, []);
// Reset to defaults
const resetState = useCallback(() => {
setState(defaultValue);
localStorage.setItem(key, JSON.stringify(defaultValue));
}, [defaultValue, key]);
return { state, setState, setField, resetState };
}