radgrad/radgrad2

View on GitHub
archive/onboard/trey/Task6EditDescription.tsx

Summary

Maintainability
A
0 mins
Test Coverage
import React from 'react';
import SimpleSchema from 'simpl-schema';
import Swal from 'sweetalert2';
import { SimpleSchema2Bridge } from 'uniforms-bridge-simple-schema-2';
import { AutoForm, LongTextField, SubmitField } from 'uniforms-semantic';
import { updateMethod } from '../../../app/imports/api/base/BaseCollection.methods';
import { Interest } from '../../../app/imports/typings/radgrad';
import { Interests } from '../../../app/imports/api/interest/InterestCollection';

interface Task6EditDescriptionProps {
  interest: Interest;
}

const Task6EditDescription: React.FC<Task6EditDescriptionProps> = ({ interest }) => {

  const handleSubmit = (doc) => {
    const collectionName = Interests.getCollectionName();
    const updateData = doc;
    updateData.id = interest._id;
    updateMethod.callPromise({ collectionName, updateData }).then(() => Swal.fire({
      title: 'Description Updated',
      icon: 'success',
    }))
      .catch((error) => Swal.fire({
        title: 'Update Failed',
        text: error.message,
        icon: 'error',
      }));
  };

  const schema = new SimpleSchema({
    description: {
      type: String,
    },
  });
  const formSchema = new SimpleSchema2Bridge(schema);

  return (
    <AutoForm schema={formSchema} onSubmit={handleSubmit} showInlineError>
      <LongTextField name="description" />
      <SubmitField className="mini basic green" value="Update Description" />
    </AutoForm>
  );
};

export default Task6EditDescription;