/** * @license * Copyright (c) 2014, 2024, Oracle and/or its affiliates. * Licensed under The Universal Permissive License (UPL), Version 1.0 * as shown at https://oss.oracle.com/licenses/upl/ * @ignore */ import { h } from "preact"; import ItemDetailContainer from "./ItemDetail/ItemDetailContainer"; import ActivityItemContainer from "./ActivityItem/ActivityItemContainer"; import MutableArrayDataProvider = require("ojs/ojmutablearraydataprovider"); import * as storeData from "text!./store_data.json"; import { useState, useEffect, useCallback } from "preact/hooks"; type Props = { activity: Item | null; }; type Item = { id: number; name: string; short_desc?: string; price?: number; quantity?: number; quantity_shipped?: number; quantity_instock?: number; activity_id?: number; image?: string; }; type ActivityItem = { id: number; name: string; items: Array; short_desc: string; image: string; }; const activityData = JSON.parse(storeData); let activityItemsArray = activityData[0].items // Create data provider instance for the array of activity items for the Baseball activity const INIT_DATAPROVIDER = new MutableArrayDataProvider(activityItemsArray, { keyAttributes: "id", }); const ParentContainer2 = (props: Props) => { const [selectedItemVal, setSelectedItemVal] = useState(null); const [activityItemDP, setactivityItemDP] = useState(INIT_DATAPROVIDER); const activityItemChangeHandler = useCallback( (item: Item) => { setSelectedItemVal(item); }, [selectedItemVal] ); const showItems = useCallback(() => { return selectedItemVal === null ? false : true; }, [selectedItemVal]); useEffect(() => { let actID = (props.activity!.id) - 1; let activityItemsArray = activityData[actID].items; setactivityItemDP( new MutableArrayDataProvider(activityItemsArray, { keyAttributes: "id", }) ); }, [props.activity]); return (
{showItems() && ( )} {!showItems() && (

Select activity item to see details

)}
); }; export default ParentContainer2;