Commit 398001cd authored by Jakub Uhlárik's avatar Jakub Uhlárik
Browse files

feat(frontend): functional edit

parent 485f601d
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -15,7 +15,9 @@ export const validateBuild = (build: Build) => {
    throw new ConflictError('Socket');
  }

  if (!eq(memory?.memoryGeneration, motherboard?.chipset.memoryGeneration)) {
  if (
    !eq(memory?.memoryGeneration.id, motherboard?.chipset.memoryGeneration.id)
  ) {
    throw new ConflictError('MemoryGeneration');
  }

+1 −1
Original line number Diff line number Diff line
@@ -21,7 +21,7 @@ export function CategoryView({ id, name, view }: CategoryInputType) {
        <LinkButton name="Build" url={`category/${id}`} />
      ) : (
        <Button variant="contained" onClick={() => addCategory(id)}>
          {id === configuration.categoryId ? 'Chosen' : 'Choose'}
          {id === configuration.preset.categoryId ? 'Chosen' : 'Choose'}
        </Button>
      )}
    </li>
+2 −2
Original line number Diff line number Diff line
@@ -11,13 +11,13 @@ export function PresetView({
  name,
  description,
  id,
  category,
  categoryId,
}: Preset) {
  const admin = useRecoilValue(auth);
  const { addPresetAtributes } = useConfiguration();
  const navigate = useNavigate();
  function setEdit() {
    addPresetAtributes({ id, name, description, category });
    addPresetAtributes({ id, name, description, categoryId });
    navigate(`/presets/${buildId}`);
  }

+15 −39
Original line number Diff line number Diff line
@@ -43,9 +43,9 @@ export function useConfiguration() {
    onSuccess: (b: Build) =>
      addConfigutation({
        buildId: b.id,
        name: configuration.name ?? '',
        description: configuration.description ?? '',
        categoryId: configuration.categoryId ?? '',
        name: configuration.preset.name ?? '',
        description: configuration.preset.description ?? '',
        categoryId: configuration.preset.categoryId ?? '',
      }),
  });

@@ -53,10 +53,9 @@ export function useConfiguration() {
    Build,
    ApiError,
    EditBuildType
  >([
    'editBuild',
    (editBuild: EditBuildType) => buildApi.update(editBuild.id, editBuild.data),
  ]);
  >(['editBuild'], (editBuild: EditBuildType) =>
    buildApi.update(editBuild.id, editBuild.data)
  );

  const { mutate: editConfiguration, isLoading: loadingEditConfig } =
    useMutation<Preset, ApiError, EditConfigType>(
@@ -87,13 +86,12 @@ export function useConfiguration() {

  // if not add is edit
  function isAdd() {
    console.log(configuration);
    return (
      configuration.preset?.id === undefined || configuration.id === undefined
    );
  }

  function getIds() {
  function getIdsParts() {
    return {
      processorId: configuration.processor?.id ?? null,
      memoryId: configuration.memory?.id ?? null,
@@ -103,17 +101,18 @@ export function useConfiguration() {
  }

  function send() {
    if (!isAdd) {
    if (!isAdd()) {
      if (haveName()) {
        editConfiguration({
          id: configuration.preset.id,
          data: {
            name: configuration.name,
            description: configuration.description,
            name: configuration.preset.name,
            description: configuration.preset.description,
            categoryId: configuration.preset.categoryId,
          },
        });
      }
      editBuildServer({ id: configuration.id, data: getIds() });
      editBuildServer({ id: configuration.id, data: getIdsParts() });
      reset();
      return;
    }
@@ -122,12 +121,12 @@ export function useConfiguration() {
      return;
    }

    addBuildServer(getIds());
    addBuildServer(getIdsParts());
    reset();
  }

  function addBuild(build: Build) {
    setConfiguration({ ...build });
    setConfiguration({ ...configuration, ...build });
  }
  function addNameDesc(nameDesc: Preset) {
    setConfiguration({
@@ -141,42 +140,19 @@ export function useConfiguration() {
  }

  function addPresetAtributes(preset: Preset) {
    console.log(preset);
    console.log({
      ...configuration,
      preset: { ...preset, categoryId: preset.category.id },
    });
    setConfiguration({
      ...configuration,
      preset: { ...preset, categoryId: preset.category.id },
    });
  }

  function validateLocal(build: Build) {
    try {
      // validate extern()
      console.log(build);
    } catch (error) {
      if (error instanceof Conflict) {
        console.log(`invalid ${error.message}`);
      }
    }
    setConfiguration({ ...configuration, preset });
  }

  function addMotherboard(motherboard: Motherboard) {
    validateLocal({ ...configuration, motherboard, id: '' });
    setConfiguration({ ...configuration, motherboard });
  }
  function addProcesor(processor: Processor) {
    validateLocal({ ...configuration, processor, id: '' });
    setConfiguration({ ...configuration, processor });
  }
  function addVideoCard(videoCard: VideoCard) {
    validateLocal({ ...configuration, videoCard, id: '' });
    setConfiguration({ ...configuration, videoCard });
  }
  function addMemory(memory: Memory) {
    validateLocal({ ...configuration, memory, id: '' });
    setConfiguration({ ...configuration, memory });
  }

+1 −1
Original line number Diff line number Diff line
@@ -24,7 +24,7 @@ export function OneCategory() {
      ) : (
        <div className="presets__list">
          <h1 className="presets__title">{category.name}</h1>
          {category.preset.map((preset) => (
          {category.presets.map((preset) => (
            <PresetView key={preset.id} {...preset} />
          ))}
        </div>
Loading