Skip to content
Snippets Groups Projects
Select Git revision
  • 36aa2efc7a55059eafd11c2636e34de69d7c3e19
  • main default protected
  • seed_variation_ruegen
  • cami_seed_variation
  • cami_restructured
  • camis
6 results

cami_v2.py

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    AIModels.jsx 2.06 KiB
    import React, { useEffect, useState } from 'react';
    import api from '../../utils/AxiosConfig';
    import { mergeBackendValidation } from '../../utils/ErrorHandling';
    import Models from './AI/Models';
    import NewModel from './AI/NewModel';
    import AIStatus from './AI/Status';
    
    function AIModels() {
      // #################################
      // HOOKS
      // #################################
      // ### SET TABLE DATA
      const [data, setData] = useState({});
    
      // ### FETCH MODELS
      useEffect(() => {
        // ### on run exec this code
        const controller = new AbortController();
        const getDocument = async () => {
          try {
            // fetch all items and store them in state
            const items = await api.post('/ai/models', { filter: '' }, {
              signal: controller.signal
            });
    
            setData(items.data.models);
          } catch (error) {
            mergeBackendValidation(error.response.status, error.response.data);
          }
        };
        getDocument();
        // ### return will be executed on unmounting this component
        return () => {
          // on unmount abort request
          controller.abort();
        };
        // ### opt. 2. argument: when to run this hook
      }, []);
    
    
    
      // #################################
      // FUNCTIONS
      // #################################
    
    
    
      // #################################
      // OUTPUT
      // #################################
      return (
        <>
          {/* AI */}
          <section>
            {/* <!-- header --> */}
            <div className="group sticky top-0 bg-UhhWhite z-10 mb-4 font-UhhBC text-2xl">
              {/* <!-- number --> */}
              <span className="text-UhhRed">01 </span>
              {/* <!-- title --> */}
              AI
              {/* <!-- line --> */}
              <div className="absolute w-[50vw] right-[50%] h-1 bg-UhhRed"></div>
            </div>
    
            <fieldset>
              {/* ai status */}
              <AIStatus />
              {/* new model */}
              <NewModel data={data} setData={setData} />
              {/* model list */}
              <Models data={data} setData={setData} />
    
            </fieldset>
    
    
    
          </section>
        </>
      );
    }
    
    export default React.memo(AIModels);