/** @type {import('./$types').LayoutLoad} */

import { get } from 'svelte/store';

import { api } from '$lib/api';
import { ae_loc, ae_sess, ae_api, slct, slct_trigger } from '$lib/ae_stores';
import type { key_val } from '$lib/ae_stores';


export async function load({ params, url }) { // route
    // console.log(`Svelte Sponsorships layout.ts data = params:`, params);
    // console.log(`Svelte Sponsorships layout.ts data = route:`, route);
    // console.log(`Svelte Sponsorships layout.ts data = url:`, url);

    let ae_loc_tmp = get(ae_loc);
    console.log(`ae_loc = `, ae_loc_tmp);

    let ds_code_li: null|key_val = ae_loc_tmp.ds;
    console.log(`ae_ ds_code_li = `, ds_code_li);
    let ds_code: null|string = null;
    let ds_type: null|string = null;


    let data_struct = {
        ae_init: ae_loc_tmp,
        params: params,
        sections: [
			{ slug: 'new', title: 'New Sponsorship' },
			{ slug: 'manage', title: 'Manage' },
            { slug: 'test', title: 'Test' },
		],
        url: url,

    };

    let loading_results = null;

    ds_code = 'hub__page__sponsorships__create_info';
    ds_type = 'text';
    // loading_results = await handle_get_data_store_obj_w_code({ code: ds_code })
    // .then( function (ds_hub_page_sponsorships_create_info_results) {
    //     if (ds_hub_page_sponsorships_create_info_results) {
    //         console.log(`ae_ hub__page__sponsorships__create_info = `, ds_hub_page_sponsorships_create_info_results);
    //         // let ae_loc_tmp = get(ae_loc);

    //         ds_code_li[ds_code] = ds_hub_page_sponsorships_create_info_results;

    //         // ae_loc.set(ae_loc_tmp);
    //         // console.log(`ae_loc = `, get(ae_loc));
    //     }
    // })
    // .finally(function () {
    //     console.log(`ae_ ds_code_li = `, ds_code_li);
    //     ae_loc_tmp = {
    //         ...ae_loc_tmp,
    //         'ds': ds_code_li,
    //     }
    //     console.log(`ae_loc_tmp = `, ae_loc_tmp);

    //     ae_loc.set(ae_loc_tmp);
    //     console.log(`ae_loc = `, get(ae_loc));
    // });

    loading_results = await api.get_data_store_obj_w_code({
        api_cfg: get(ae_api),
        data_store_code: ds_code,
        data_type: ds_type,
        log_lvl: 0
        })
    .then( function (ds_results) {
        if (ds_results) {
            console.log(`ae_ Data Store ${ds_code} = `, ds_results);
            // let ae_loc_tmp = get(ae_loc);

            ds_code_li[ds_code] = ds_results.text;

            // ae_loc.set(ae_loc_tmp);
            // console.log(`ae_loc = `, get(ae_loc));
        }
    })
    .finally(function () {
        console.log(`ae_ ds_code_li = `, ds_code_li);
        ae_loc_tmp = {
            ...ae_loc_tmp,
            'ds': ds_code_li,
        }
        console.log(`ae_loc_tmp = `, ae_loc_tmp);

        ae_loc.set(ae_loc_tmp);
        console.log(`ae_loc = `, get(ae_loc));
    });

    return data_struct;
}





// async function handle_get_data_store_obj_w_code({ code=null, data_type='text' }) {
//     console.log(`*** handle_get_data_store_obj_w_code() *** code=${code}`);

//     if (!code) {
//         console.log('No code provided.');
//         return;
//     }

//     let data_store_obj_get_promise = api.get_data_store_obj_w_code({
//         api_cfg: get(ae_api),
//         data_store_code: code,
//         data_type: data_type,
//         log_lvl: 0
//         })
//     .then(function (get_data_store_result) {
//         let return_this = null;
//         if (get_data_store_result) {

//             if (data_type == 'text') {
//                 // console.log(get_data_store_result.text);
//                 return_this = get_data_store_result.text;
//             } else if (data_type == 'json') {
//                 // console.log(get_data_store_result.json);
//                 return_this = get_data_store_result.json;
//             }

//         } else {
//             console.log('No results returned.');
//             return_this = null;
//         }
//         return return_this;
//     })
//     .catch(function (error) {
//         console.log('No results returned or failed.', error);
//     });

//     return data_store_obj_get_promise;
// }
