Skip to content

Commit 2b2dd30

Browse files
dentonwongAhnafKhvnraulclassico7
committed
Merge Dev
Co-authored-by: AhnafKhvn <[email protected]> Co-authored-by: raulclassico7 <[email protected]>
2 parents 85ea8c3 + 4aadca8 commit 2b2dd30

40 files changed

+23083
-13253
lines changed

.gitignore

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -501,3 +501,27 @@ server/RootCA.srl
501501
/test-results/
502502
/playwright-report/
503503
/playwright/.cache/
504+
505+
#amplify-do-not-edit-begin
506+
amplify/\#current-cloud-backend
507+
amplify/.config/local-*
508+
amplify/logs
509+
amplify/mock-data
510+
amplify/mock-api-resources
511+
amplify/backend/amplify-meta.json
512+
amplify/backend/.temp
513+
build/
514+
dist/
515+
node_modules/
516+
aws-exports.js
517+
awsconfiguration.json
518+
amplifyconfiguration.json
519+
amplifyconfiguration.dart
520+
amplify-build-config.json
521+
amplify-gradle-config.json
522+
amplifytools.xcconfig
523+
.secret-*
524+
**.sample
525+
#amplify-do-not-edit-end
526+
527+
/amplify/team-provider-info.json

CHANGE_LOG.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,19 +17,19 @@ Changes:<br>
1717
- Cleaned up hundreds of lines of outdated code and archived multiple unused and duplicate files
1818
- User Features:
1919
- UI updated with a modern style for a better developer experience
20-
- Added many user feedback alerts for better experience including alerts for when projects are published, cloned, deleted, context created, or custom component created.
20+
- Added many user feedback alerts for better experience including alerts for when projects are published, cloned, deleted, HTML custom tags are created, context created, or custom component created.
21+
- Built a specific buttons menu that individually display the HTML elements, reusable components created, and join room option.
22+
- Redesigned the state manager panel option to be readable and functional.
2123
- Drop down menu now closes only when the user clicks outside of the menu
2224
- Marketplace:
2325
- Implemented a dedicated area for developers to share their projects
2426
- Routing handled by React Router
25-
- Projects can also be cloned to the user's account to be used and edited
27+
- Projects can also be cloned to the user's account to be used and edited with the addition of a button
2628
- Added search functionality to search by username and project name
27-
- Separate section in the Saved Projects and Delete Projects modal in the Manage Project menu for Downloaded Projects from the Marketplace
29+
- Included a separate section in the Saved Projects and Delete Projects modal in the Manage Project menu for cloned projects from the Marketplace
2830
- Publish/Unpublish Button:
2931
- Publish feature on the web app allows users to publish their saved project files into the Marketplace from the main app page
3032
- Dynamically switches between publish/unpublish depending on whether the loaded project is in the Marketplace
31-
- Bug Fixes:
32-
-
3333

3434
Recommendations for Future Enhancements:<br>
3535

@@ -40,6 +40,8 @@ Recommendations for Future Enhancements:<br>
4040
- Continue quality Typescript conversion. Continue to fix type errors within component files.
4141
- Modularize appStateSlice file. Further modularization is needed for readability and maintainability.
4242
- Solve residual bugs. Undo & Redo buttons on customization page not functioning as expected. Backend bugs persist as seen in the console when running the dev environment. Resolve electron app functionality to coincide with web app functionality.
43+
- Take a look at the join room functionality using web sockets in order to allow users to collaborate on the same project at the same time.
44+
- For the state manager option in the data table there is a MuiData-menu that is not visible when clicking it and after the filter option is clicked it creates a white space in the bottom of the page.
4345
- Continue code cleanup. Continue cleanup of outdated and unused code and files
4446

4547
**Version 16.0.0 Changes**

README.md

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -63,20 +63,10 @@ If you want to read about using ReacType, the [User Manual](https://reactype-1.h
6363

6464
## Changes with version 17.0.0
6565

66-
- **Improved Testing Coverage**: Testing coverage now sits at XX%.
67-
- **Typescript Conversion**: Typescript coverage now sits at XX%.
66+
- **Improved Testing Coverage**: Testing coverage now sits at ~60%.
67+
- **Typescript Conversion**: Typescript coverage now sits at ~80%.
6868
- **UI Overhaul**: Upgraded the UI of the application with a more modern style and better developer experience
69-
- **Marketplace Feature**: Implemented a dedicated area for developers to share their projects
70-
- **And more:** See [change log](https://github.com/open-source-labs/ReacType/blob/master/CHANGE_LOG.md) for more details on what was changed from the previous versions as well as plans for upcoming features!
71-
72-
## Changes with version 16.0.0
73-
74-
- **Improved Testing Coverage**: Testing coverage has now doubled since version 15, and now sits at just over 50% coverage. Version 16 introduces end-to-end testing with Playwright and adds additional unit testing with React Testing Library.
75-
- **Major Bug Fixes**: Manage Project Features now work as expected. State Manager now deletes state from parent components. Context Manager Display Tab and CSS Editor now rendering as expected.
76-
- **Typescript Conversion**: Typescript coverage has improved from 30% to 80% with additional interfaces added for quality improvements.
77-
- **Live CSS Demo Rendering**: CSS Editor changes now rendered visually in the demo page on save.
78-
- **Universal Exports on Web App**: Export feature on web app now allows users to download the current project as a zip file with modularized component folder, html, and css file included. Export feature is now available to all users including guests.
79-
- **UI Improvements**: Fixed multiple contrast issues with white text displaying on white background. Adjusted context manager interface for improved UX. Fixed border styling within modals and error messages.
69+
- **Marketplace Feature**: Implemented a dedicated area for developers to share their projects,
8070
- **And more:** See [change log](https://github.com/open-source-labs/ReacType/blob/master/CHANGE_LOG.md) for more details on what was changed from the previous versions as well as plans for upcoming features!
8171

8272
## File Structure courtesy of Reactype version 14.0.0

__tests__/NavBar.test.tsx

Lines changed: 55 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,12 @@ import '@testing-library/jest-dom/extend-expect';
44
import { MemoryRouter } from 'react-router-dom';
55
import { ThemeProvider, createTheme } from '@mui/material/styles';
66
import NavBar from '../app/src/components/top/NavBar';
7-
import navBarButtons from '../app/src/components/top/NavBarButtons';
87
import * as projectFunctions from '../app/src/helperFunctions/projectGetSaveDel';
98
import { Provider } from 'react-redux';
9+
import { act } from 'react-dom/test-utils';
1010
import { configureStore } from '@reduxjs/toolkit';
1111
import rootReducer from '../app/src/redux/reducers/rootReducer';
1212
import { initialState as appStateInitialState } from '../app/src/redux/reducers/slice/appStateSlice';
13-
import { act } from 'react-dom/test-utils';
14-
1513

1614
// Mock the non-serializable HTMLTypes
1715
const mockHTMLTypes = [
@@ -47,7 +45,6 @@ const mockHTMLTypes = [
4745
},
4846
];
4947

50-
5148
// Mocking the theme
5249
const theme = createTheme({
5350
spacing: (value) => `${value}px`,
@@ -117,11 +114,8 @@ describe('NavBar Component', () => {
117114

118115
console.log('After rendering NavBar');
119116

120-
await act(async () => {
121-
122-
const publishButton = getByText('Publish');
123-
fireEvent.click(publishButton);
124-
});
117+
const publishButton = getByText('Publish');
118+
fireEvent.click(publishButton);
125119
});
126120

127121
it('handles publish correctly with new project', async () => {
@@ -150,26 +144,27 @@ describe('NavBar Component', () => {
150144

151145
console.log('After rendering NavBar');
152146

153-
// Check if the "Publish" button is present
154-
const publishButton = queryByText('Publish');
147+
await act(async () => {
148+
// Check if the "Publish" button is present
149+
const publishButton = queryByText('Publish');
155150

156-
if (publishButton) {
157-
fireEvent.click(publishButton);
158-
} else {
159-
// If "Publish" button is not found, look for the "Unpublish" button
160-
const unpublishButton = getByText('Unpublish');
161-
fireEvent.click(unpublishButton);
162-
}
151+
if (publishButton) {
152+
fireEvent.click(publishButton);
153+
} else {
154+
// If "Publish" button is not found, look for the "Unpublish" button
155+
const unpublishButton = getByText('Unpublish');
156+
fireEvent.click(unpublishButton);
157+
}
163158

164-
// Check if the modal for a new project is displayed
165-
const projectNameInput = queryByTestId('project-name-input');
159+
// Check if the modal for a new project is displayed
160+
const projectNameInput = queryByTestId('project-name-input');
166161

167-
if (projectNameInput) {
168-
// entering a project name in the modal
169-
fireEvent.change(projectNameInput, { target: { value: 'My Project' } });
170-
}
162+
if (projectNameInput) {
163+
// entering a project name in the modal
164+
fireEvent.change(projectNameInput, { target: { value: 'My Project' } });
165+
}
171166
});
172-
167+
});
173168

174169
it('handles unpublish correctly', async () => {
175170
const unpublishProjectMock = jest.spyOn(projectFunctions, 'unpublishProject');
@@ -242,7 +237,8 @@ describe('NavBar Component', () => {
242237
fireEvent.click(exportComponentsOption);
243238

244239
});
245-
test('handles dropdown menu correctly', async () => {
240+
241+
it('handles dropdown menu correctly', async () => {
246242
const store = configureStore({
247243
reducer: rootReducer,
248244
preloadedState: {
@@ -251,8 +247,9 @@ describe('NavBar Component', () => {
251247
},
252248
},
253249
});
254-
255-
// Render component
250+
251+
console.log('Before rendering NavBar');
252+
256253
const { getByTestId, getByText } = render(
257254
<Provider store={store}>
258255
<MemoryRouter>
@@ -262,33 +259,34 @@ describe('NavBar Component', () => {
262259
</MemoryRouter>
263260
</Provider>
264261
);
265-
266-
// Initially, the dropdown should have the "hideNavDropDown" class
267-
const dropdownMenu = getByTestId('navDropDown');
268-
expect(dropdownMenu).toHaveClass('hideNavDropDown');
269-
270-
// Find and click the button to open the dropdown
271-
const moreVertButton = getByTestId('more-vert-button');
272-
fireEvent.click(moreVertButton);
273-
274-
// After clicking, the dropdown should have the "navDropDown" class
275-
expect(dropdownMenu).toHaveClass('navDropDown');
276-
277-
278-
//clear canvas click
279-
const clearCanvasMenuItem = getByText('Clear Canvas');
280-
fireEvent.click(clearCanvasMenuItem);
281-
expect(dropdownMenu).toHaveClass('navDropDown');
282-
283-
// After clicking "Marketplace", it should remain open
284-
const marketplaceMenuItem = getByText('Marketplace');
285-
fireEvent.click(marketplaceMenuItem);
286-
expect(dropdownMenu).toHaveClass('navDropDown');
287-
288-
// Close the dropdown by clicking the button again
289-
fireEvent.click(moreVertButton);
290-
291-
// After closing, the dropdown should have the "hideNavDropDown" class
292-
expect(dropdownMenu).toHaveClass('hideNavDropDown');
262+
263+
console.log('After rendering NavBar');
264+
265+
await act(async () => {
266+
267+
const dropdownMenu = getByTestId('navDropDown');
268+
expect(dropdownMenu).toHaveClass('hideNavDropDown');
269+
270+
271+
const moreVertButton = getByTestId('more-vert-button');
272+
fireEvent.click(moreVertButton);
273+
274+
275+
expect(dropdownMenu).toHaveClass('hideNavDropDown');
276+
277+
278+
const clearCanvasMenuItem = getByText('Clear Canvas');
279+
fireEvent.click(clearCanvasMenuItem);
280+
expect(dropdownMenu).toHaveClass('hideNavDropDown');
281+
282+
283+
const marketplaceMenuItem = getByText('Marketplace');
284+
fireEvent.click(marketplaceMenuItem);
285+
expect(dropdownMenu).toHaveClass('hideNavDropDown');
286+
287+
fireEvent.click(moreVertButton);
288+
289+
expect(dropdownMenu).toHaveClass('hideNavDropDown');
290+
});
293291
});
294-
});
292+
})

amplify/.config/project-config.json

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"projectName": "ReacType",
3+
"version": "3.1",
4+
"frontend": "javascript",
5+
"javascript": {
6+
"framework": "none",
7+
"config": {
8+
"SourceDir": "src",
9+
"DistributionDir": "dist",
10+
"BuildCommand": "npm run-script build",
11+
"StartCommand": "npm run-script start"
12+
}
13+
},
14+
"providers": [
15+
"awscloudformation"
16+
]
17+
}

amplify/README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Getting Started with Amplify CLI
2+
This directory was generated by [Amplify CLI](https://docs.amplify.aws/cli).
3+
4+
Helpful resources:
5+
- Amplify documentation: https://docs.amplify.aws
6+
- Amplify CLI documentation: https://docs.amplify.aws/cli
7+
- More details on this folder & generated files: https://docs.amplify.aws/cli/reference/files
8+
- Join Amplify's community: https://amplify.aws/community/
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
{
2+
"version": "1",
3+
"cognitoConfig": {
4+
"identityPoolName": "reactype24e8d371_identitypool_24e8d371",
5+
"allowUnauthenticatedIdentities": true,
6+
"resourceNameTruncated": "reacty24e8d371",
7+
"userPoolName": "reactype24e8d371_userpool_24e8d371",
8+
"autoVerifiedAttributes": [
9+
"email"
10+
],
11+
"mfaConfiguration": "OFF",
12+
"mfaTypes": [
13+
"SMS Text Message"
14+
],
15+
"smsAuthenticationMessage": "Your authentication code is {####}",
16+
"smsVerificationMessage": "Your verification code is {####}",
17+
"emailVerificationSubject": "Your verification code",
18+
"emailVerificationMessage": "Your verification code is {####}",
19+
"defaultPasswordPolicy": false,
20+
"passwordPolicyMinLength": 8,
21+
"passwordPolicyCharacters": [],
22+
"requiredAttributes": [
23+
"email"
24+
],
25+
"aliasAttributes": [],
26+
"userpoolClientGenerateSecret": false,
27+
"userpoolClientRefreshTokenValidity": 30,
28+
"userpoolClientWriteAttributes": [
29+
"email"
30+
],
31+
"userpoolClientReadAttributes": [
32+
"email"
33+
],
34+
"userpoolClientLambdaRole": "reacty24e8d371_userpoolclient_lambda_role",
35+
"userpoolClientSetAttributes": false,
36+
"sharedId": "24e8d371",
37+
"resourceName": "reactype24e8d371",
38+
"authSelections": "identityPoolAndUserPool",
39+
"useDefault": "default",
40+
"userPoolGroupList": [],
41+
"serviceName": "Cognito",
42+
"usernameCaseSensitive": false,
43+
"useEnabledMfas": true,
44+
"authRoleArn": {
45+
"Fn::GetAtt": [
46+
"AuthRole",
47+
"Arn"
48+
]
49+
},
50+
"unauthRoleArn": {
51+
"Fn::GetAtt": [
52+
"UnauthRole",
53+
"Arn"
54+
]
55+
},
56+
"breakCircularDependency": true,
57+
"dependsOn": []
58+
}
59+
}

amplify/backend/backend-config.json

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
{
2+
"auth": {
3+
"reactype24e8d371": {
4+
"customAuth": false,
5+
"dependsOn": [],
6+
"frontendAuthConfig": {
7+
"mfaConfiguration": "OFF",
8+
"mfaTypes": [
9+
"SMS"
10+
],
11+
"passwordProtectionSettings": {
12+
"passwordPolicyCharacters": [],
13+
"passwordPolicyMinLength": 8
14+
},
15+
"signupAttributes": [
16+
"EMAIL"
17+
],
18+
"socialProviders": [],
19+
"usernameAttributes": [],
20+
"verificationMechanisms": [
21+
"EMAIL"
22+
]
23+
},
24+
"providerPlugin": "awscloudformation",
25+
"service": "Cognito"
26+
}
27+
},
28+
"storage": {
29+
"ReacTypeMktImg": {
30+
"dependsOn": [],
31+
"providerPlugin": "awscloudformation",
32+
"service": "S3"
33+
}
34+
}
35+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"resourceName": "ReacTypeMktImg",
3+
"policyUUID": "f87a3e6a",
4+
"bucketName": "reactypemktimgs",
5+
"storageAccess": "authAndGuest",
6+
"guestAccess": [
7+
"READ"
8+
],
9+
"authAccess": [
10+
"CREATE_AND_UPDATE",
11+
"READ",
12+
"DELETE"
13+
],
14+
"triggerFunction": "NONE",
15+
"groupAccess": {}
16+
}

0 commit comments

Comments
 (0)