{"id":23916737,"url":"https://github.com/alexandrebellas/glaut-nested-menu","last_synced_at":"2025-02-23T19:42:59.424Z","repository":{"id":244475943,"uuid":"815298251","full_name":"AlexandreBellas/glaut-nested-menu","owner":"AlexandreBellas","description":"A nested menu react component with JSON state representation.","archived":false,"fork":false,"pushed_at":"2024-06-15T01:22:09.000Z","size":1476,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-05T12:13:47.906Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AlexandreBellas.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-14T19:51:52.000Z","updated_at":"2024-06-15T01:22:13.000Z","dependencies_parsed_at":"2024-06-15T00:43:55.664Z","dependency_job_id":"56d2d122-c77b-45f3-b8e3-197aac9ee0e3","html_url":"https://github.com/AlexandreBellas/glaut-nested-menu","commit_stats":null,"previous_names":["alexandrebellas/glaut-nested-menu"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexandreBellas%2Fglaut-nested-menu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexandreBellas%2Fglaut-nested-menu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexandreBellas%2Fglaut-nested-menu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexandreBellas%2Fglaut-nested-menu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AlexandreBellas","download_url":"https://codeload.github.com/AlexandreBellas/glaut-nested-menu/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240371746,"owners_count":19790888,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-05T12:13:51.352Z","updated_at":"2025-02-23T19:42:59.379Z","avatar_url":"https://github.com/AlexandreBellas.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Glaut's nested menu\n\nThis repository refers to the challenge sent from Glaut to create a nested menu\nfollowing certain conditions listed below.\n\n## Objective\n\nBuild a React component with these features:\n\n1. Add Top-Level Items: Users can add new items at the top level of the list.\n2. Add Nested Items: Users can add new items nested within existing items. For\n   example, clicking an \"Add Child\" button within an item should add a nested child\n   item.\n3. Edit Item Names: Users can click on an item’s name to edit it. The changes\n   should be reflected in the state.\n4. State Representation: The component’s state should be a nested JSON array\n   that reflects the hierarchical structure of the list. Each item in the JSON\n   should have a name and a children array.\n\n## Considerations\n\n- The project has been built with ReactJS with functional components and Vite\n- The tests have been done with Vitest\n- The styling has been done with CSS modules and inline styling\n\n## How to run\n\nTo run in development, run the following:\n\n```bash\nnpm run dev\n```\n\nand open `http://localhost:5173` in the browser.\n\nTo run in production, run:\n\n```bash\nnpm run build\n```\n\nand open or serve the file `index.html` under the folder `dist`.\n\n## Testing\n\nTo run the project tests, execute:\n\n```bash\nnpm run test\n```\n\n### To-do tests\n\n- [ ] Create new item\n- [ ] Edit existing item\n- [ ] Create child item\n\n- [ ] Do not allow create empty new item\n- [ ] Do not allow edit item with empty content\n- [ ] Do not allow create empty child item\n\n- [ ] Do not allow create child items with nesting higher than 3\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexandrebellas%2Fglaut-nested-menu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falexandrebellas%2Fglaut-nested-menu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexandrebellas%2Fglaut-nested-menu/lists"}