// assets/js/bootstrap.js

const config = window.ACC_CONFIG || {};
const apiFetch = window.wp?.apiFetch;

if (apiFetch) {

    // تنظیم آدرس پایه REST API
    if (config.api) {
        apiFetch.use(
            apiFetch.createRootURLMiddleware(config.api)
        );
    }

    // JWT middleware
    apiFetch.use((options, next) => {

        const token = sessionStorage.getItem("acc_token");

        if (token) {
            options.headers = {
                ...options.headers,
                Authorization: `Bearer ${token}`,
            };
        }

        return next(options);
    });

    // interceptor برای مدیریت خطا
    apiFetch.use(async (options, next) => {

        try {
            const response = await next(options);
            return response;

        } catch (error) {

            if (error?.status === 401) {

                // حذف توکن
                sessionStorage.removeItem("acc_token");

                // ریدایرکت به login
                window.location.href = "/login";
            }

            throw error;
        }
    });

}

// اجرای SPA
import "./app.js";
