|
@@ -1,1280 +0,0 @@
|
|
|
-{
|
|
|
- "src\\App.jsx": {
|
|
|
- "description": "This is the main App component. It sets the MUI theme as well as the dark mode (if desired). It also deals with Frontend-Routing with the help of React Router.\n@returns the complete App\n@component",
|
|
|
- "displayName": "App",
|
|
|
- "methods": []
|
|
|
- },
|
|
|
- "src\\components\\Buttons\\AddButton.jsx": {
|
|
|
- "description": "Button in form of a plus icon",
|
|
|
- "displayName": "AddButton",
|
|
|
- "methods": [],
|
|
|
- "props": {
|
|
|
- "onClick": {
|
|
|
- "type": {
|
|
|
- "name": "func"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": ""
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "src\\components\\Buttons\\BackButton.jsx": {
|
|
|
- "description": "Button in form of a caret left icon",
|
|
|
- "displayName": "BackButton",
|
|
|
- "methods": [],
|
|
|
- "props": {
|
|
|
- "onClick": {
|
|
|
- "type": {
|
|
|
- "name": "func"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": ""
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "src\\components\\Buttons\\BoxCloseX.jsx": {
|
|
|
- "description": "Button that is an x within a black circle that turns red on hovering, center located on top right corner of parent",
|
|
|
- "displayName": "BoxCloseX",
|
|
|
- "methods": [],
|
|
|
- "props": {
|
|
|
- "onClick": {
|
|
|
- "type": {
|
|
|
- "name": "func"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": ""
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "src\\components\\Buttons\\DeleteButton.jsx": {
|
|
|
- "description": "Button in form of a trashcan icon",
|
|
|
- "displayName": "DeleteButton",
|
|
|
- "methods": [],
|
|
|
- "props": {
|
|
|
- "onClick": {
|
|
|
- "type": {
|
|
|
- "name": "func"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": ""
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "src\\components\\Buttons\\EditButton.jsx": {
|
|
|
- "description": "Button in form of a pencil icon",
|
|
|
- "displayName": "EditButton",
|
|
|
- "methods": [],
|
|
|
- "props": {
|
|
|
- "onClick": {
|
|
|
- "type": {
|
|
|
- "name": "func"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": ""
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "src\\components\\Buttons\\FontButton.jsx": {
|
|
|
- "description": "Component for clickable text",
|
|
|
- "displayName": "FontButton",
|
|
|
- "methods": [],
|
|
|
- "props": {
|
|
|
- "onClick": {
|
|
|
- "type": {
|
|
|
- "name": "func"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": ""
|
|
|
- },
|
|
|
- "label": {
|
|
|
- "type": {
|
|
|
- "name": "string"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": ""
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "src\\components\\Buttons\\InnerBoxCloseX.jsx": {
|
|
|
- "description": "Button that is an x within a black circle that turns red on hovering, located **within** top right corner of parent",
|
|
|
- "displayName": "InnerBoxCloseX",
|
|
|
- "methods": [],
|
|
|
- "props": {
|
|
|
- "onClick": {
|
|
|
- "type": {
|
|
|
- "name": "func"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": ""
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "src\\components\\Buttons\\InnerBoxSelection.jsx": {
|
|
|
- "description": "Button that is a checkmark within a green circle that turns opaque on hovering, located within the top left corner of parent",
|
|
|
- "displayName": "InnerBoxSelection",
|
|
|
- "methods": [],
|
|
|
- "props": {
|
|
|
- "onClick": {
|
|
|
- "type": {
|
|
|
- "name": "func"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": ""
|
|
|
- },
|
|
|
- "selected": {
|
|
|
- "type": {
|
|
|
- "name": "bool"
|
|
|
- },
|
|
|
- "required": false,
|
|
|
- "description": "",
|
|
|
- "defaultValue": {
|
|
|
- "value": "false",
|
|
|
- "computed": false
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "src\\components\\Buttons\\LoginButton.jsx": {
|
|
|
- "description": "",
|
|
|
- "displayName": "LoginButton",
|
|
|
- "methods": []
|
|
|
- },
|
|
|
- "src\\components\\Buttons\\LogoutButton.jsx": {
|
|
|
- "description": "",
|
|
|
- "displayName": "LogoutButton",
|
|
|
- "methods": []
|
|
|
- },
|
|
|
- "src\\components\\Buttons\\SearchButton.jsx": {
|
|
|
- "description": "Button in form of a magnifying glass",
|
|
|
- "displayName": "SearchButton",
|
|
|
- "methods": [],
|
|
|
- "props": {
|
|
|
- "onClick": {
|
|
|
- "type": {
|
|
|
- "name": "func"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": ""
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "src\\components\\Buttons\\SimpleCloseX.jsx": {
|
|
|
- "description": "Button in form of a big white X icon",
|
|
|
- "displayName": "SimpleCloseX",
|
|
|
- "methods": [],
|
|
|
- "props": {
|
|
|
- "onClick": {
|
|
|
- "type": {
|
|
|
- "name": "func"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": ""
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "src\\components\\ContentWrapper.jsx": {
|
|
|
- "description": "Wrapper component to display content page and bottom navigation\n@param activeTab {string} the site to display, must be present in the components switch case\n@component",
|
|
|
- "displayName": "ContentWrapper",
|
|
|
- "methods": []
|
|
|
- },
|
|
|
- "src\\components\\Home.jsx": {
|
|
|
- "description": "Home component shows info text and login button if user is not logged in\n@component",
|
|
|
- "displayName": "Home",
|
|
|
- "methods": []
|
|
|
- },
|
|
|
- "src\\components\\Images\\CircleImage.jsx": {
|
|
|
- "description": "Image cropped to circular shape",
|
|
|
- "displayName": "CircleImage",
|
|
|
- "methods": [],
|
|
|
- "props": {
|
|
|
- "src": {
|
|
|
- "type": {
|
|
|
- "name": "string"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": "complete path of the image source"
|
|
|
- },
|
|
|
- "altText": {
|
|
|
- "type": {
|
|
|
- "name": "string"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": "alternative text if image cannot be displayed"
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "src\\components\\Images\\ImageCarousel.jsx": {
|
|
|
- "description": "full screen overlay containing image carousel",
|
|
|
- "displayName": "ImageCarousel",
|
|
|
- "methods": [],
|
|
|
- "props": {
|
|
|
- "images": {
|
|
|
- "type": {
|
|
|
- "name": "arrayOf",
|
|
|
- "value": {
|
|
|
- "name": "shape",
|
|
|
- "value": {
|
|
|
- "name": {
|
|
|
- "name": "string",
|
|
|
- "required": false
|
|
|
- },
|
|
|
- "path": {
|
|
|
- "name": "string",
|
|
|
- "required": false
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": "all images that can be scrolled through in the carousel, including name (that will be the altText) and relative path to serverURL"
|
|
|
- },
|
|
|
- "startIndex": {
|
|
|
- "type": {
|
|
|
- "name": "number"
|
|
|
- },
|
|
|
- "required": false,
|
|
|
- "description": "Array index number of image that will be displayed first",
|
|
|
- "defaultValue": {
|
|
|
- "value": "0",
|
|
|
- "computed": false
|
|
|
- }
|
|
|
- },
|
|
|
- "dismissCarousel": {
|
|
|
- "type": {
|
|
|
- "name": "func"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": "function that hides the carousel"
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "src\\components\\Images\\ImageUpload.jsx": {
|
|
|
- "description": "Image Upload that includes the display of the images that have been uploaded.\r\n Either single image or multiple images, which affects the look:\r\n ### Multiple Image Upload\r\n + images will be displayed as `Image Grid`, with a Dropzone being the first tile\r\n ### Single Image Upload\r\n + image needs to be wrapped in an array\r\n + will be displayed as a circular image with an optional overlay of a camera icon",
|
|
|
- "displayName": "ImageUpload",
|
|
|
- "methods": [],
|
|
|
- "props": {
|
|
|
- "multiple": {
|
|
|
- "type": {
|
|
|
- "name": "bool"
|
|
|
- },
|
|
|
- "required": false,
|
|
|
- "description": "allow upload of more than one image?",
|
|
|
- "defaultValue": {
|
|
|
- "value": "false",
|
|
|
- "computed": false
|
|
|
- }
|
|
|
- },
|
|
|
- "uploadedImages": {
|
|
|
- "type": {
|
|
|
- "name": "arrayOf",
|
|
|
- "value": {
|
|
|
- "name": "union",
|
|
|
- "value": [
|
|
|
- {
|
|
|
- "name": "shape",
|
|
|
- "value": {
|
|
|
- "name": {
|
|
|
- "name": "string",
|
|
|
- "required": false
|
|
|
- },
|
|
|
- "path": {
|
|
|
- "name": "string",
|
|
|
- "required": false
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- {
|
|
|
- "name": "string"
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- "required": false,
|
|
|
- "description": "images that have been uploaded, must be updated through onChangeUploadedImages function.\r\n * If single image (multiple === false), complete source must be the (first or) only element of an array\r\n * If multiple needs to be array of name (alt-Tag) and relative path to serverURL",
|
|
|
- "defaultValue": {
|
|
|
- "value": "[]",
|
|
|
- "computed": false
|
|
|
- }
|
|
|
- },
|
|
|
- "category": {
|
|
|
- "type": {
|
|
|
- "name": "string"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": "category/folder name of the image, e.g., mealImages or userProfile (make sure that folder exists in uploads folder!)"
|
|
|
- },
|
|
|
- "categoryId": {
|
|
|
- "type": {
|
|
|
- "name": "string"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": "ID within the category, e.g., mealId or userId"
|
|
|
- },
|
|
|
- "onChangeUploadedImages": {
|
|
|
- "type": {
|
|
|
- "name": "func"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": "function that updates the image(s)"
|
|
|
- },
|
|
|
- "imageName": {
|
|
|
- "type": {
|
|
|
- "name": "string"
|
|
|
- },
|
|
|
- "required": false,
|
|
|
- "description": "if multiple === false this name is the alt tag of the single uploaded image"
|
|
|
- },
|
|
|
- "useSingleUploadOverlay": {
|
|
|
- "type": {
|
|
|
- "name": "bool"
|
|
|
- },
|
|
|
- "required": false,
|
|
|
- "description": "overlay single image upload area with a transparent camera icon",
|
|
|
- "defaultValue": {
|
|
|
- "value": "false",
|
|
|
- "computed": false
|
|
|
- }
|
|
|
- },
|
|
|
- "string": {
|
|
|
- "defaultValue": {
|
|
|
- "value": "''",
|
|
|
- "computed": false
|
|
|
- },
|
|
|
- "required": false
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "src\\components\\Images\\PhotoDropzone.jsx": {
|
|
|
- "description": "Dropzone that will wrap around elements that are passed as children\n+ accepts png, jpg and jpeg of max. 10MB",
|
|
|
- "displayName": "PhotoDropzone",
|
|
|
- "methods": [],
|
|
|
- "props": {
|
|
|
- "handleAcceptedFiles": {
|
|
|
- "type": {
|
|
|
- "name": "func"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": "function that handles accepted files"
|
|
|
- },
|
|
|
- "handleRejectedFiles": {
|
|
|
- "type": {
|
|
|
- "name": "func"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": "function that handles rejected files"
|
|
|
- },
|
|
|
- "multiple": {
|
|
|
- "type": {
|
|
|
- "name": "bool"
|
|
|
- },
|
|
|
- "required": false,
|
|
|
- "description": "allow uploading more than one image?",
|
|
|
- "defaultValue": {
|
|
|
- "value": "false",
|
|
|
- "computed": false
|
|
|
- }
|
|
|
- },
|
|
|
- "dropZoneStyles": {
|
|
|
- "type": {
|
|
|
- "name": "any"
|
|
|
- },
|
|
|
- "required": false,
|
|
|
- "description": "pass any className for styles to be applied to dropZone"
|
|
|
- },
|
|
|
- "usePlusIcon": {
|
|
|
- "type": {
|
|
|
- "name": "bool"
|
|
|
- },
|
|
|
- "required": false,
|
|
|
- "description": "display plus icon in the center of the dropzone?",
|
|
|
- "defaultValue": {
|
|
|
- "value": "false",
|
|
|
- "computed": false
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "src\\components\\Meals\\AddMeal.jsx": {
|
|
|
- "description": "page that allows adding a meal",
|
|
|
- "displayName": "AddMeal",
|
|
|
- "methods": [],
|
|
|
- "props": {
|
|
|
- "onDoneAdding": {
|
|
|
- "type": {
|
|
|
- "name": "func"
|
|
|
- },
|
|
|
- "required": false,
|
|
|
- "description": "function to be executed after Meal was added (receives no parameters)"
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "src\\components\\Meals\\EditMeal.jsx": {
|
|
|
- "description": "Dialog page that allows user to edit meal",
|
|
|
- "displayName": "EditMeal",
|
|
|
- "methods": [],
|
|
|
- "props": {
|
|
|
- "meal": {
|
|
|
- "type": {
|
|
|
- "name": "shape",
|
|
|
- "value": {
|
|
|
- "_id": {
|
|
|
- "name": "string",
|
|
|
- "required": false
|
|
|
- },
|
|
|
- "mealTitle": {
|
|
|
- "name": "string",
|
|
|
- "required": false
|
|
|
- },
|
|
|
- "images": {
|
|
|
- "name": "arrayOf",
|
|
|
- "value": {
|
|
|
- "name": "shape",
|
|
|
- "value": {
|
|
|
- "name": {
|
|
|
- "name": "string",
|
|
|
- "required": false
|
|
|
- },
|
|
|
- "path": {
|
|
|
- "name": "string",
|
|
|
- "required": false
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "required": false
|
|
|
- },
|
|
|
- "recipeLink": {
|
|
|
- "name": "custom",
|
|
|
- "raw": "''",
|
|
|
- "required": false
|
|
|
- },
|
|
|
- "comment": {
|
|
|
- "name": "custom",
|
|
|
- "raw": "''",
|
|
|
- "required": false
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "required": false,
|
|
|
- "description": "Meal to be edited",
|
|
|
- "defaultValue": {
|
|
|
- "value": "null",
|
|
|
- "computed": false
|
|
|
- }
|
|
|
- },
|
|
|
- "open": {
|
|
|
- "type": {
|
|
|
- "name": "bool"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": "is component visible?"
|
|
|
- },
|
|
|
- "onDoneEditing": {
|
|
|
- "type": {
|
|
|
- "name": "func"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": "function to be executed after editing complete (receives no parameters)"
|
|
|
- },
|
|
|
- "onDoneDelete": {
|
|
|
- "type": {
|
|
|
- "name": "func"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": "function to be executed after meal deletion complete (receives no parameters)"
|
|
|
- },
|
|
|
- "closeDialog": {
|
|
|
- "type": {
|
|
|
- "name": "func"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": "function that closes Dialog / sets open to false"
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "src\\components\\Meals\\EditMealCore.jsx": {
|
|
|
- "description": "component is used by AddMeal and EditMeal and provides their shared core elements: text and photo input.\r\n Does not handle communication to server",
|
|
|
- "displayName": "EditMealCore",
|
|
|
- "methods": [],
|
|
|
- "props": {
|
|
|
- "updateMeal": {
|
|
|
- "type": {
|
|
|
- "name": "func"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": "setState function of the parent component's meal that takes key and value of attribute and updates it"
|
|
|
- },
|
|
|
- "meal": {
|
|
|
- "type": {
|
|
|
- "name": "shape",
|
|
|
- "value": {
|
|
|
- "_id": {
|
|
|
- "name": "string",
|
|
|
- "required": false
|
|
|
- },
|
|
|
- "title": {
|
|
|
- "name": "string",
|
|
|
- "required": false
|
|
|
- },
|
|
|
- "images": {
|
|
|
- "name": "arrayOf",
|
|
|
- "value": {
|
|
|
- "name": "shape",
|
|
|
- "value": {
|
|
|
- "name": {
|
|
|
- "name": "string",
|
|
|
- "required": false
|
|
|
- },
|
|
|
- "path": {
|
|
|
- "name": "string",
|
|
|
- "required": false
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "required": false
|
|
|
- },
|
|
|
- "recipeLink": {
|
|
|
- "name": "custom",
|
|
|
- "raw": "''",
|
|
|
- "required": false
|
|
|
- },
|
|
|
- "comment": {
|
|
|
- "name": "custom",
|
|
|
- "raw": "''",
|
|
|
- "required": false
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": "meal to be edited"
|
|
|
- },
|
|
|
- "isSecondary": {
|
|
|
- "type": {
|
|
|
- "name": "bool"
|
|
|
- },
|
|
|
- "required": false,
|
|
|
- "description": "whether to use primary or secondary color scheme",
|
|
|
- "defaultValue": {
|
|
|
- "value": "false",
|
|
|
- "computed": false
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "src\\components\\Meals\\MealDetailView.jsx": {
|
|
|
- "description": "Dialog page that displays Meal Details and optionally opens Edit Dialog",
|
|
|
- "displayName": "MealDetailView",
|
|
|
- "methods": [],
|
|
|
- "props": {
|
|
|
- "meal": {
|
|
|
- "type": {
|
|
|
- "name": "shape",
|
|
|
- "value": {
|
|
|
- "title": {
|
|
|
- "name": "string",
|
|
|
- "required": false
|
|
|
- },
|
|
|
- "images": {
|
|
|
- "name": "arrayOf",
|
|
|
- "value": {
|
|
|
- "name": "shape",
|
|
|
- "value": {
|
|
|
- "name": {
|
|
|
- "name": "string",
|
|
|
- "required": false
|
|
|
- },
|
|
|
- "path": {
|
|
|
- "name": "string",
|
|
|
- "required": false
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "required": false
|
|
|
- },
|
|
|
- "recipeLink": {
|
|
|
- "name": "custom",
|
|
|
- "raw": "''",
|
|
|
- "required": false
|
|
|
- },
|
|
|
- "comment": {
|
|
|
- "name": "custom",
|
|
|
- "raw": "''",
|
|
|
- "required": false
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "required": false,
|
|
|
- "description": "meal to be viewed",
|
|
|
- "defaultValue": {
|
|
|
- "value": "null",
|
|
|
- "computed": false
|
|
|
- }
|
|
|
- },
|
|
|
- "open": {
|
|
|
- "type": {
|
|
|
- "name": "bool"
|
|
|
- },
|
|
|
- "required": false,
|
|
|
- "description": "is component visible?",
|
|
|
- "defaultValue": {
|
|
|
- "value": "true",
|
|
|
- "computed": false
|
|
|
- }
|
|
|
- },
|
|
|
- "closeDialog": {
|
|
|
- "type": {
|
|
|
- "name": "func"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": "function that sets open to false"
|
|
|
- },
|
|
|
- "onDoneEditing": {
|
|
|
- "type": {
|
|
|
- "name": "func"
|
|
|
- },
|
|
|
- "required": false,
|
|
|
- "description": "function to be executed after editing (receives no parameters)"
|
|
|
- },
|
|
|
- "allowEditing": {
|
|
|
- "type": {
|
|
|
- "name": "bool"
|
|
|
- },
|
|
|
- "required": false,
|
|
|
- "description": "allow opening edit page? (To be false if not one's own meal)",
|
|
|
- "defaultValue": {
|
|
|
- "value": "false",
|
|
|
- "computed": false
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "src\\components\\Meals\\Meals.jsx": {
|
|
|
- "description": "content of page that displays all meals of a given user and opens their details views on click (not including Navbar)",
|
|
|
- "displayName": "Meals",
|
|
|
- "methods": [],
|
|
|
- "props": {
|
|
|
- "userId": {
|
|
|
- "type": {
|
|
|
- "name": "string"
|
|
|
- },
|
|
|
- "required": false,
|
|
|
- "description": "userId of user whose meals are to be displayed"
|
|
|
- },
|
|
|
- "own": {
|
|
|
- "type": {
|
|
|
- "name": "bool"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": "are these the user's own meals or is another user watching foreign meals? In the latter case editing will be prohibited."
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "src\\components\\Meals\\OwnMeals.jsx": {
|
|
|
- "description": "Page that displays a user's own meals and adds a Navbar to the Meals list that allows adding a meal",
|
|
|
- "displayName": "OwnMeals",
|
|
|
- "methods": []
|
|
|
- },
|
|
|
- "src\\components\\NavTabs.jsx": {
|
|
|
- "description": "Bottom Navigation in the form of Tabs",
|
|
|
- "displayName": "NavTabs",
|
|
|
- "methods": [],
|
|
|
- "props": {
|
|
|
- "height": {
|
|
|
- "type": {
|
|
|
- "name": "string"
|
|
|
- },
|
|
|
- "required": false,
|
|
|
- "description": "height of the BottomNav (number + unit)",
|
|
|
- "defaultValue": {
|
|
|
- "value": "process.env.REACT_APP_NAV_BOTTOM_HEIGHT + 'px'",
|
|
|
- "computed": false
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "src\\components\\Navbar.jsx": {
|
|
|
- "description": "Navbar visible on all pages.\nHas customizable title, left and right side components and an optional onClick for the title",
|
|
|
- "displayName": "Navbar",
|
|
|
- "methods": [],
|
|
|
- "props": {
|
|
|
- "pageTitle": {
|
|
|
- "type": {
|
|
|
- "name": "string"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": "title of current page"
|
|
|
- },
|
|
|
- "rightSideComponent": {
|
|
|
- "type": {
|
|
|
- "name": "any"
|
|
|
- },
|
|
|
- "required": false,
|
|
|
- "description": "component to be displayed on the right side (for example Edit Button)",
|
|
|
- "defaultValue": {
|
|
|
- "value": "null",
|
|
|
- "computed": false
|
|
|
- }
|
|
|
- },
|
|
|
- "leftSideComponent": {
|
|
|
- "type": {
|
|
|
- "name": "any"
|
|
|
- },
|
|
|
- "required": false,
|
|
|
- "description": "component to be displayed on the left side (for example Back Button)",
|
|
|
- "defaultValue": {
|
|
|
- "value": "null",
|
|
|
- "computed": false
|
|
|
- }
|
|
|
- },
|
|
|
- "height": {
|
|
|
- "type": {
|
|
|
- "name": "string"
|
|
|
- },
|
|
|
- "required": false,
|
|
|
- "description": "custom height, may not be of use anymore, but is still working",
|
|
|
- "defaultValue": {
|
|
|
- "value": "process.env.REACT_APP_NAVBAR_TOP_HEIGHT",
|
|
|
- "computed": true
|
|
|
- }
|
|
|
- },
|
|
|
- "titleOnClick": {
|
|
|
- "type": {
|
|
|
- "name": "func"
|
|
|
- },
|
|
|
- "required": false,
|
|
|
- "description": "optional onClick function for the title"
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "src\\components\\Plans\\AddPlanItem.jsx": {
|
|
|
- "description": "page that allows adding a plan",
|
|
|
- "displayName": "AddPlanItem",
|
|
|
- "methods": [],
|
|
|
- "props": {
|
|
|
- "onDoneAdding": {
|
|
|
- "type": {
|
|
|
- "name": "func"
|
|
|
- },
|
|
|
- "required": false,
|
|
|
- "description": "function to be executed after Plan was added (receives no parameters)"
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "src\\components\\Plans\\EditPlanItem.jsx": {
|
|
|
- "description": "",
|
|
|
- "displayName": "EditPlanItem",
|
|
|
- "methods": [],
|
|
|
- "props": {
|
|
|
- "planItem": {
|
|
|
- "type": {
|
|
|
- "name": "shape",
|
|
|
- "value": {
|
|
|
- "title": {
|
|
|
- "name": "string",
|
|
|
- "required": false
|
|
|
- },
|
|
|
- "hasDate": {
|
|
|
- "name": "bool",
|
|
|
- "required": false
|
|
|
- },
|
|
|
- "date": {
|
|
|
- "name": "string",
|
|
|
- "required": false
|
|
|
- },
|
|
|
- "gotEverything": {
|
|
|
- "name": "bool",
|
|
|
- "required": false
|
|
|
- },
|
|
|
- "missingIngredients": {
|
|
|
- "name": "arrayOf",
|
|
|
- "value": {
|
|
|
- "name": "shape",
|
|
|
- "value": {
|
|
|
- "name": {
|
|
|
- "name": "string",
|
|
|
- "required": false
|
|
|
- },
|
|
|
- "checked": {
|
|
|
- "name": "bool",
|
|
|
- "required": false
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "required": false
|
|
|
- },
|
|
|
- "connectedMealId": {
|
|
|
- "name": "string",
|
|
|
- "required": false
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "required": false,
|
|
|
- "description": "plan to be edited",
|
|
|
- "defaultValue": {
|
|
|
- "value": "null",
|
|
|
- "computed": false
|
|
|
- }
|
|
|
- },
|
|
|
- "open": {
|
|
|
- "type": {
|
|
|
- "name": "bool"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": "is component visible?"
|
|
|
- },
|
|
|
- "onDoneEditing": {
|
|
|
- "type": {
|
|
|
- "name": "func"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": "function to be executed after editing complete (receives no parameters)"
|
|
|
- },
|
|
|
- "closeDialog": {
|
|
|
- "type": {
|
|
|
- "name": "func"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": "function that closes Dialog / sets open to false"
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "src\\components\\Plans\\EditPlanItemCore.jsx": {
|
|
|
- "description": "component is used by AddPlanItem and EditPlanItem and provides their shared input elements\r\n Does not handle communication to server",
|
|
|
- "displayName": "EditPlanItemCore",
|
|
|
- "methods": [],
|
|
|
- "props": {
|
|
|
- "isAdd": {
|
|
|
- "type": {
|
|
|
- "name": "bool"
|
|
|
- },
|
|
|
- "required": false,
|
|
|
- "description": "is this component called from AddPlanItem page?\r\nThis is necessary because the MUI Autocomplete component is still a lab component and does not work 100% properly, so I had to implement a workaround that needs this info",
|
|
|
- "defaultValue": {
|
|
|
- "value": "false",
|
|
|
- "computed": false
|
|
|
- }
|
|
|
- },
|
|
|
- "updatePlanItem": {
|
|
|
- "type": {
|
|
|
- "name": "func"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": "setState function of the parent component's planItem that takes key and value of attribute and updates it"
|
|
|
- },
|
|
|
- "planItem": {
|
|
|
- "type": {
|
|
|
- "name": "shape",
|
|
|
- "value": {
|
|
|
- "title": {
|
|
|
- "name": "string",
|
|
|
- "required": false
|
|
|
- },
|
|
|
- "hasDate": {
|
|
|
- "name": "bool",
|
|
|
- "required": false
|
|
|
- },
|
|
|
- "date": {
|
|
|
- "name": "any",
|
|
|
- "required": false
|
|
|
- },
|
|
|
- "gotEverything": {
|
|
|
- "name": "bool",
|
|
|
- "required": false
|
|
|
- },
|
|
|
- "missingIngredients": {
|
|
|
- "name": "arrayOf",
|
|
|
- "value": {
|
|
|
- "name": "shape",
|
|
|
- "value": {
|
|
|
- "name": {
|
|
|
- "name": "string",
|
|
|
- "required": false
|
|
|
- },
|
|
|
- "checked": {
|
|
|
- "name": "bool",
|
|
|
- "required": false
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "required": false
|
|
|
- },
|
|
|
- "connectedMealId": {
|
|
|
- "name": "string",
|
|
|
- "required": false
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": "planItem to be edited"
|
|
|
- },
|
|
|
- "isSecondary": {
|
|
|
- "type": {
|
|
|
- "name": "bool"
|
|
|
- },
|
|
|
- "required": false,
|
|
|
- "description": "whether to use primary or secondary color scheme",
|
|
|
- "defaultValue": {
|
|
|
- "value": "false",
|
|
|
- "computed": false
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "src\\components\\Plans\\MissingIngredients.jsx": {
|
|
|
- "description": "Dialog that displays a plans missing ingredients and allows to check or uncheck them",
|
|
|
- "displayName": "MissingIngredients",
|
|
|
- "methods": [],
|
|
|
- "props": {
|
|
|
- "planItem": {
|
|
|
- "type": {
|
|
|
- "name": "shape",
|
|
|
- "value": {
|
|
|
- "_id": {
|
|
|
- "name": "string",
|
|
|
- "required": false
|
|
|
- },
|
|
|
- "title": {
|
|
|
- "name": "string",
|
|
|
- "required": false
|
|
|
- },
|
|
|
- "hasDate": {
|
|
|
- "name": "bool",
|
|
|
- "required": false
|
|
|
- },
|
|
|
- "date": {
|
|
|
- "name": "string",
|
|
|
- "required": false
|
|
|
- },
|
|
|
- "gotEverything": {
|
|
|
- "name": "bool",
|
|
|
- "required": false
|
|
|
- },
|
|
|
- "missingIngredients": {
|
|
|
- "name": "arrayOf",
|
|
|
- "value": {
|
|
|
- "name": "shape",
|
|
|
- "value": {
|
|
|
- "name": {
|
|
|
- "name": "string",
|
|
|
- "required": false
|
|
|
- },
|
|
|
- "checked": {
|
|
|
- "name": "bool",
|
|
|
- "required": false
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "required": false
|
|
|
- },
|
|
|
- "connectedMealId": {
|
|
|
- "name": "string",
|
|
|
- "required": false
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "required": false,
|
|
|
- "description": "planItem whose ingredients are to be displayed",
|
|
|
- "defaultValue": {
|
|
|
- "value": "null",
|
|
|
- "computed": false
|
|
|
- }
|
|
|
- },
|
|
|
- "open": {
|
|
|
- "type": {
|
|
|
- "name": "bool"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": "is component visible?"
|
|
|
- },
|
|
|
- "onDoneEditing": {
|
|
|
- "type": {
|
|
|
- "name": "func"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": "function to be executed after an ingredient is checked or unchecked (receives no parameters)"
|
|
|
- },
|
|
|
- "closeDialog": {
|
|
|
- "type": {
|
|
|
- "name": "func"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": "function that closes Dialog / sets open to false"
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "src\\components\\Plans\\OwnPlans.jsx": {
|
|
|
- "description": "Page that displays a user's own plans and adds a Navbar to the plans list that allows adding a plan",
|
|
|
- "displayName": "OwnPlans",
|
|
|
- "methods": []
|
|
|
- },
|
|
|
- "src\\components\\Plans\\Plans.jsx": {
|
|
|
- "description": "content of page that displays all plans of a given user (not including Navbar)",
|
|
|
- "displayName": "Plans",
|
|
|
- "methods": [],
|
|
|
- "props": {
|
|
|
- "own": {
|
|
|
- "type": {
|
|
|
- "name": "bool"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": "are these the user's own plans or is another user watching foreign plans? In the latter case editing will be prohibited."
|
|
|
- },
|
|
|
- "userId": {
|
|
|
- "type": {
|
|
|
- "name": "string"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": "userId of user whose plans are to be displayed"
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "src\\components\\Plans\\ShoppingList.jsx": {
|
|
|
- "description": "Displays a list of all ingredients of future plans (ingredients of past plans will not be displayed)\n+ checked ingredients will be displayed with a line through the text\n+ allows checking off and unchecking items from the list by clicking on them\n+ orders ingredients by date and meal",
|
|
|
- "displayName": "ShoppingList",
|
|
|
- "methods": [],
|
|
|
- "props": {
|
|
|
- "userId": {
|
|
|
- "type": {
|
|
|
- "name": "string"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": "user whose plans will be compiled into the shopping list"
|
|
|
- },
|
|
|
- "onClose": {
|
|
|
- "type": {
|
|
|
- "name": "func"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": "function that closes the ShoppingList component"
|
|
|
- },
|
|
|
- "plans": {
|
|
|
- "type": {
|
|
|
- "name": "array"
|
|
|
- },
|
|
|
- "required": false,
|
|
|
- "description": "optional plans array. If not provided, plans will be fetched from database",
|
|
|
- "defaultValue": {
|
|
|
- "value": "null",
|
|
|
- "computed": false
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "src\\components\\Settings\\EditProfile.jsx": {
|
|
|
- "description": "Dialog page to edit user data, looks like Profile but is editable",
|
|
|
- "displayName": "EditProfile",
|
|
|
- "methods": [],
|
|
|
- "props": {
|
|
|
- "userData": {
|
|
|
- "type": {
|
|
|
- "name": "shape",
|
|
|
- "value": {}
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": "initial user data to be edited"
|
|
|
- },
|
|
|
- "onUpdateUser": {
|
|
|
- "type": {
|
|
|
- "name": "func"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": "callback to be executed after user is updated (receives no parameters)"
|
|
|
- },
|
|
|
- "isSecondary": {
|
|
|
- "type": {
|
|
|
- "name": "bool"
|
|
|
- },
|
|
|
- "required": false,
|
|
|
- "description": "whether to use primary or secondary color scheme",
|
|
|
- "defaultValue": {
|
|
|
- "value": "false",
|
|
|
- "computed": false
|
|
|
- }
|
|
|
- },
|
|
|
- "open": {
|
|
|
- "type": {
|
|
|
- "name": "bool"
|
|
|
- },
|
|
|
- "required": false,
|
|
|
- "description": "is component visible?",
|
|
|
- "defaultValue": {
|
|
|
- "value": "false",
|
|
|
- "computed": false
|
|
|
- }
|
|
|
- },
|
|
|
- "closeDialog": {
|
|
|
- "type": {
|
|
|
- "name": "func"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": "function that closes Dialog / sets open to false"
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "src\\components\\Settings\\Profile.jsx": {
|
|
|
- "description": "content page (excluding Navbar) that displays user's data",
|
|
|
- "displayName": "Profile",
|
|
|
- "methods": [],
|
|
|
- "props": {
|
|
|
- "userData": {
|
|
|
- "type": {
|
|
|
- "name": "shape",
|
|
|
- "value": {}
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": "user data to be displayed, currently displays name, metadata.nickname, email and metadata.picture (or picture if no metadata.picture is set)"
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "src\\components\\Settings\\ProfilePlaceholder.jsx": {
|
|
|
- "description": "empty dummy profile to be displayed while userData is loading",
|
|
|
- "displayName": "ProfilePlaceholder",
|
|
|
- "methods": []
|
|
|
- },
|
|
|
- "src\\components\\Settings\\Settings.jsx": {
|
|
|
- "description": "page that displays user profile (and allows editing user profile) and underneath allows changing remaining settings\n+ settings that can be changed:\n + language\n + use dark mode?",
|
|
|
- "displayName": "Settings",
|
|
|
- "methods": [],
|
|
|
- "props": {
|
|
|
- "setDarkModeInAppLevel": {
|
|
|
- "type": {
|
|
|
- "name": "func"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": "needs to receive a function that can toggle dark mode directly from the App.jsx component"
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "src\\components\\Social\\ContactsContent.jsx": {
|
|
|
- "description": "#### Page component that is displayed when other users are accessing a profile that is not their own.\n+ gets the userId from the URL params (of React Router)\n+ current content:\n + Navbar (title: other user's name)\n + two swipeable tabs that display the other user's plans and meals",
|
|
|
- "displayName": "ContactsContent",
|
|
|
- "methods": []
|
|
|
- },
|
|
|
- "src\\components\\Social\\FriendOrUnfriendButton.jsx": {
|
|
|
- "description": "Button that will toggle whether given contact is included in current user's contacts array.",
|
|
|
- "displayName": "FriendOrUnfriendButton",
|
|
|
- "methods": [],
|
|
|
- "props": {
|
|
|
- "otherUser": {
|
|
|
- "type": {
|
|
|
- "name": "object"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": "user that will be added or removed to contacts array of current user"
|
|
|
- },
|
|
|
- "afterUpdateContacts": {
|
|
|
- "type": {
|
|
|
- "name": "func"
|
|
|
- },
|
|
|
- "required": false,
|
|
|
- "description": "optional function that allows fetching updated contacts in parent component (receives no parameters)",
|
|
|
- "defaultValue": {
|
|
|
- "value": "null",
|
|
|
- "computed": false
|
|
|
- }
|
|
|
- },
|
|
|
- "contacts": {
|
|
|
- "type": {
|
|
|
- "name": "array"
|
|
|
- },
|
|
|
- "required": false,
|
|
|
- "description": "current user's contacts that the otherUser will be added to or removed from. If not provided, will fetch contacts from the database, but this will result in longer loading",
|
|
|
- "defaultValue": {
|
|
|
- "value": "null",
|
|
|
- "computed": false
|
|
|
- }
|
|
|
- },
|
|
|
- "inNavbar": {
|
|
|
- "type": {
|
|
|
- "name": "bool"
|
|
|
- },
|
|
|
- "required": false,
|
|
|
- "description": "optional styling that displays button in a white circle",
|
|
|
- "defaultValue": {
|
|
|
- "value": "false",
|
|
|
- "computed": false
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "src\\components\\Social\\Social.jsx": {
|
|
|
- "description": "displays a list of current user's contacts and allows searching for all users through Button in Navbar\non clicking on a contact's name will open ContactContent",
|
|
|
- "displayName": "Social",
|
|
|
- "methods": []
|
|
|
- },
|
|
|
- "src\\components\\Social\\UserSearch.jsx": {
|
|
|
- "description": "Allows searching for users and shows a list of users that correspond to the search term.\nIf search term is empty, displays a list of all users.\nFurthermore, allows adding or removing found users to/from the contact list.",
|
|
|
- "displayName": "UserSearch",
|
|
|
- "methods": [],
|
|
|
- "props": {
|
|
|
- "closeSearch": {
|
|
|
- "type": {
|
|
|
- "name": "func"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": "function that closes Dialog / sets open to false"
|
|
|
- },
|
|
|
- "open": {
|
|
|
- "type": {
|
|
|
- "name": "bool"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": "is component visible?"
|
|
|
- },
|
|
|
- "contacts": {
|
|
|
- "type": {
|
|
|
- "name": "arrayOf",
|
|
|
- "value": {
|
|
|
- "name": "shape",
|
|
|
- "value": {}
|
|
|
- }
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": "contact array of current user"
|
|
|
- },
|
|
|
- "afterUpdateContacts": {
|
|
|
- "type": {
|
|
|
- "name": "func"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": "function to be executed after friend or unfriend action. *Must* update the contacts prop."
|
|
|
- },
|
|
|
- "openContact": {
|
|
|
- "type": {
|
|
|
- "name": "func"
|
|
|
- },
|
|
|
- "required": false,
|
|
|
- "description": "function that will open the contact's page"
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "src\\components\\util\\CircularProgressWithLabel.jsx": {
|
|
|
- "description": "Countdown that will be displayed as a number of seconds remaining surrounded by a circular progress that runs in reverse from initialValue to 0, updates every second",
|
|
|
- "displayName": "CircularProgressWithLabel",
|
|
|
- "methods": [],
|
|
|
- "props": {
|
|
|
- "initialValue": {
|
|
|
- "type": {
|
|
|
- "name": "number"
|
|
|
- },
|
|
|
- "required": true,
|
|
|
- "description": "initial value of countdown in seconds"
|
|
|
- },
|
|
|
- "step": {
|
|
|
- "type": {
|
|
|
- "name": "number"
|
|
|
- },
|
|
|
- "required": false,
|
|
|
- "description": "number of seconds that will be subtracted each second",
|
|
|
- "defaultValue": {
|
|
|
- "value": "1",
|
|
|
- "computed": false
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- "src\\components\\util\\SlidingTransition.jsx": {
|
|
|
- "description": "Provides sliding in from the right side effect to Dialog components",
|
|
|
- "displayName": "SlidingTransitionLeft",
|
|
|
- "methods": []
|
|
|
- }
|
|
|
-}
|