Commit Graph

244 Commits

Author SHA1 Message Date
Andre H
05e1ac6b02 ♻️ refactor: change tags to tag for rencer page 2024-02-22 22:48:31 +07:00
Andre H
55848b1dd1 ♻️ refactor: rename tags to tag 2024-02-22 22:46:10 +07:00
Andre Hadianto
42bf1534fb
Merge branch 'andrehadianto/design-system-components' into andrehadianto/T-4869-toast 2024-02-22 23:42:47 +08:00
9acb9daacc
Update README after implementation of authentication (#101)
* Update README

* Add tooltip to display ethereum address

* Update README for production deployment

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-22 19:24:06 +05:30
ef0eac8293
Implement authentication with SIWE (#99)
* Create web3 modal provider with SIWE

* Add auth router to handle SIWE authentication

* Use axios instance to make request

* Add button for SIWE authentication

* Add changes to access session in web-app GQL requests

* Add auth check in GQL context and load/create user

* Use authenticated user from context

* Redirect to sign in page if unauthenticated and logout button

* Change sign-in route to login

* Get project domain from config file

* Set user ethAddress column as unique

* Use formatted user name

* Get session secret and origin url from config file

* Add unique constraint for eth address

* Get secure and samesite from origin url

* Get wallet connect id and backend url from env file

* Format user email in member tab panel

* Add backend config isProduction to set trust proxy

* Use only one server url config

* Add tool tip for displaying email

* Add trustProxy and domain in server.session config

* Add SERVER_GQL_PATH constant in frontend

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-22 17:26:26 +05:30
Wahyu Kurniawan
7d1810ebd9
[T-4866: feat] Switch component (#92)
* ️ feat: create switch component

* 📝 docs: add switch to the example page

* 🔧 chore: install `@radix-ui/react-switch`

* 🎨 style: add inset shadow

* 🎨 style: addjust input outline when error and focus
2024-02-22 17:42:13 +07:00
Wahyu Kurniawan
d2ca4df35a
[T-4864: feat] Radio component (#90)
* 🎨 style: make the cursor of the tab trigger wrapper to default

* ️ feat: create radio component

* 📝 docs: add radio component to the example page

* 🔧 chore: install `@radix-ui/react-radio-group`
2024-02-22 17:30:33 +07:00
Zachery
30bbe4d766
[T-4870] Tooltip component (#96)
* fix: button forwardRef

* feat: tooltip component
2024-02-22 18:25:04 +08:00
Andre H
32918b7930 🔧 chore: index import 2024-02-22 17:07:15 +07:00
Andre H
596889b5e2 🔧 chore: add render tags component 2024-02-22 17:01:58 +07:00
Andre H
bb7a88f7e9 🔧 chore: add toast render page 2024-02-22 14:17:02 +07:00
6b17dce2ae
UI fixes in Snowball frontend app (#93)
* Fix alignment of deployment status chip

* Use template name from env

* Use env for git template link

* Add loading spinner for create project

* Display user name

* Format the displayed user name

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-22 11:25:17 +05:30
Wahyu Kurniawan
496404195c
Merge branch 'main' of https://github.com/snowball-tools/snowballtools-base into andrehadianto/design-system-components 2024-02-22 12:45:17 +07:00
Wahyu Kurniawan
9dec48d67c
♻️ refactor: add disabled button example page 2024-02-22 12:24:25 +07:00
Andre H
267b52a352 Merge remote-tracking branch 'origin/andrehadianto/design-system-components' into andrehadianto/T-4869-toast 2024-02-22 11:49:11 +07:00
Andre H
fa96b6e734 🔧 chore: add to components render page 2024-02-22 11:46:39 +07:00
e816c596ca
Publish ApplicationRecord and ApplicationDeploymentRequest on creating new deployments (#89)
* Create application deployment request on new deployment

* Save application deployment request datas in deployment entity

* Add project as dependency

* Use project repo name as record app name

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-22 10:04:33 +05:30
Wahyu Kurniawan
6df094bf2e
[T-4861: feat] Inline notification component (#86)
* ️ feat: create info square icon component

* ️ feat: create inline notification component

* 📝 docs: add js doc comment and add inline notification component to the example page

* 🐛 fix: use the right method of `useCallback
2024-02-22 10:45:19 +07:00
Andre Hadianto
2369f4498a
Merge pull request #85 from snowball-tools/andrehadianto/T-4863-input-field
feat: input field
2024-02-22 10:18:59 +08:00
Wahyu Kurniawan
eb6a727425
[T-4862: feat] Link component (#88) 2024-02-22 09:17:22 +07:00
Andre H
807a4b1197 🔧 chore: lint 2024-02-21 17:08:14 +07:00
Andre H
5f6723fad6 ♻️ refactor: create new renderInput for component page 2024-02-21 17:07:59 +07:00
8ca55cd888
Implement polling for project deployment updates (#87)
* Populate organization and user if db is empty

* Use hardcoded user id from fixtures

* Implement polling for get deployments query

* Handle review changes

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-21 15:34:33 +05:30
Andre Hadianto
b3a99475af
Merge branch 'andrehadianto/design-system-components' into andrehadianto/T-4863-input-field 2024-02-21 17:39:29 +08:00
Wahyu Kurniawan
ea44efa0f2
[T-4867: feat] Horizontal and vertical tabs component (#84)
* ️ feat: create tabs component

* ♻️ refactor: avoid big conflict on the example page

* 🔧 chore: upgrade tailwindcss and install `@radix-ui/react-tabs`

* ️ feat: create globe icon component

* 🎨 style: adjust vertical tab theme

* 📝 docs: add vertical tabs to the example page
2024-02-21 16:13:16 +07:00
Andre H
7d5963d776 🔧 chore: add input to page/components 2024-02-21 15:44:21 +07:00
Andre H
b5eef95d15 Merge remote-tracking branch 'origin/main' 2024-02-21 11:00:14 +07:00
Zachery
f0121605c4
feat: avatar component (#76) 2024-02-21 11:39:38 +08:00
Wahyu Kurniawan
83508cd81d
Merge branch 'andrehadianto/design-system-components' of https://github.com/snowball-tools/snowballtools-base into ayungavis/T-4837-badge 2024-02-20 23:38:35 +07:00
Wahyu Kurniawan
3a085a79ae
Merge branch 'andrehadianto/design-system-components' of https://github.com/snowball-tools/snowballtools-base into ayungavis/T-4838-checkbox 2024-02-20 23:29:18 +07:00
Wahyu Kurniawan
f764bea6d1
📝 docs: add badge to the example page 2024-02-20 23:26:04 +07:00
Wahyu Kurniawan
b255078431
📝 docs: add checkbox to example component page 2024-02-20 23:25:19 +07:00
Wahyu Kurniawan
dc6bf3794a
️ feat: add interaction on the example page 2024-02-20 23:24:28 +07:00
Wahyu Kurniawan
4f7f9cf914
📝 docs: add calendar component to the example page 2024-02-20 23:24:27 +07:00
a45fb4c617
Fix deployments visit URL and date filter (#78)
* Add method to update multiple deployments in single query

* Fix deployments URL visit and date filter

* Clean fixtures data

* Update fixtures data

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-20 10:53:42 +05:30
Wahyu Kurniawan
943d427db1
📝 docs: add button icon only on component example 2024-02-19 21:16:39 +07:00
Wahyu Kurniawan
b51d050ee6
📝 docs: add button to the example comopnent pag 2024-02-19 20:13:56 +07:00
c3d1b4f3eb
Use branches from GitHub API in edit domain dialog (#74)
* Use branches from GitHub API

* Disable git branch input if repo not found

* Disable git branch if branches is empty

* Use async select for accounts dropdown

* Log actual HTTP error in console

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-19 16:55:07 +05:30
b007286f4a
Add script to publish dummy ApplicationDeploymentRecord (#72)
* Add script to publish application deployment record

* Refactor publish deploy records script

* Assert if name doesn't exist in package.json

* Disable import environment variables button

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-16 15:05:52 +05:30
Andre H
082353e9bc ️ feat: implement components page to act as storybook 2024-02-16 12:31:13 +07:00
d29b29f161
Use environment variables from DB in published record data (#70)
* Publish environment variables of deployment

* Handle review changes

* Use dummy gray image for projects

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-15 18:02:37 +05:30
c4ba59d97e
Create deployments on push events in GitHub repo (#69)
* Create repo webhook and express handler for webhook

* Create deployments from commits in GitHub

* Update isCurrent in previous production deployment

* Create script for setting authority

* Update README for initialize registry script

* Handle review changes

* Use correct repo URL in record data

* Handle github unique webhook error

* Handle async execution of publishing records

* Update readme with ngrok setup

* Review changes

* Add logs for GitHub webhooks

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-15 17:24:57 +05:30
9921dc5186
Show public repo GitHub activity without authentication (#68)
* Handle request error while fetching Git activity

* Use default Octokit instance if auth token is not available

* Rename input arguments of mutation methods to data

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-14 17:35:02 +05:30
db3b9148b6
Save commit message in DB and show in deployments list (#67)
* Display commit message in projects and deployments

* Handle if current deployment not present

* Rename types file

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-14 14:25:50 +05:30
adba64fd2b
Fix route for adding domain in settings page (#66)
* Use Namespace import instead of named import

* Fix route for add domain

* Fix settings tab routes on changing sub path

* Fix stepper for add domain and project

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-14 12:16:01 +05:30
9144d42f70
Set record data with repo commit hash and package.json content (#65)
* Get latest commit hash from repo when adding project

* Update UI/UX

* Fill registry record with data from package.json

* Add package json type

* Correct record data based on laconic console

* Update README

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-14 11:03:22 +05:30
76dfd3bb76
Implement routes for project settings tab (#64)
* Add routes to settings tab panel

* Refactor code to move settings tab components to pages

* Rename registry fields in project and deployment entity

* Use kebab case for routes

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-12 15:18:00 +05:30
559e0f8934
Implement routes for project tabs (#63)
* Add routes to project tabs

* remove react tabs and use material tailwind component instead

* Refactor code to move project tab panels in pages directory

* Remove unused function from database class

* Refactor routes for project tabs
2024-02-12 12:17:47 +05:30
a58b9b255e
Publish app deployment record in Laconic registry on creating new deployments (#62)
* Publish record in laconic registry on creating project and deployment

* Refactor publish record method

* Set name for the published record

* Publish application deployment request

* Add README for publishing record

* Add await in add project resolver method

* Update meta data for deployment request record

* Remove title field from deployment entity

* Refactor service and registry class for publishing record

* Add record data to project and deployment entity

* Set record id and data as nullable in project entity

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-12 11:34:01 +05:30
bd6a6b330c
Create new deployment on changing preview deployment to production (#61)
* Create new deployment when changing to production

* Remove unnecessary todos

* Move deployment id and url creation in database method

* Display correct details in deployment dialog box

* Rename relativeTime function to relativeTimeISO

* Refactor resolver methods to service class

* Refactor to move github app to service class

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-08 14:59:19 +05:30
e0001466e0
Implement functionality to create project using a template (#60)
* Create repository from selected template

* Create project based on created repository

* Replace dropdown component with component from material tailwind

* Remove repository name from query parameters
2024-02-08 09:20:49 +05:30
413ed03eb8
Implement organization switcher and use slug in URL (#59)
* Implement dropdown for organizations switcher

* Add dynamic route for organization id

* Update routes for organization slug

* Use organization slug for adding project

* Refactor to fetch organizations at sidebar component

* Update organization switcher based on searched project

* Refactor types in frontend

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-07 18:41:54 +05:30
c0cee2c57f
Set project name for repository organization and name (#57)
* Remove unused methods from backend utils

* Set project name from repo organization and name when creating project

* Rename success and project components according to routes
2024-02-06 16:18:29 +05:30
1c9597739b
Change UI for create new project page (#54)
* Change create new project ui for git authentication

* Use submit handler method from react hook form

* Handle review changes

* Have a pre-selected value for connect account tab panel
2024-02-05 16:56:53 +05:30
da92ddfba3
Refactor mutation GQL methods to service class and display organization name (#53)
* Refactor mutation methods to service class

* Refactor database methods to service class

* Display organization name in sidebar

* Handle review comments

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-05 16:21:55 +05:30
ef89d69577
Implement creating project by importing repository (#49)
* Implement create project with import repository

* Add button for creating project in deploy step
2024-02-01 18:10:15 +05:30
aa49bb0de2 Implement functionality to update production branch in project settings (#60)
* Add mutation to update prod branch for project

* Implement frontend to update production branch

* Handle review changes

* Update README for Github creating OAuth app

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30
3a7f16467e Save gitHub token in DB and unauthenticate on expiry (#58) 2024-02-01 11:37:57 +05:30
e1e9a7063e Implement Github authentication to show repositories list (#45)
* Use react-oauth-popup for github authentication popup

* Fetch auth token and use in app to fetch list of repositories

* Get client id and secret from config

* Use GitHub search API for fetching repos

* Use debounce for searching repos and projects
2024-02-01 11:37:57 +05:30
8ead083ab3 Display searched project from different organization (#52)
* Refactor to remove use of organization project

* Remove organization project from member tab panel

* Handle review changes

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30
d97794f1bf Integrate rollback deployment GQL mutation in frontend (#49)
* Use rollback deployment client in UI

* Check if deployements domain is undefined

* Fix typo

* Rename variable to current deployment

* Handle deployment domain relation on rollback

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30
a34e2286a6 Implement functionality for adding new domain in project settings (#48)
* Add mutation to create new domain

* Update mutation to create two domains for www and non-www variant

* Add gql-client method and frontend to create domain

* Display fetched domains in domains tab panel using project id

* Fix graphql type for fetching domains

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30
1ae1564878 Add GQL mutation to delete project (#43)
* Implement delete project functionality

* Use delete project client method in UI

* Refetch projects information on deleting project

* Use project's current deployment domain name for url

* Handle review changes

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30
5310d7c7d0 Add GQL mutation for updating project data in general settings tab (#41)
* Use update project gql client method in UI

* Handle save project button based on form change

* Fix import order

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30
prathamesh0
cbc394f9f8 Handle remove member operation in frontend (#32)
* Add remove member gql client method

* Handle remove member UI operation

* Refactor fetching of project members

* Rename type MemberPermission to ProjectMember

* Add types to gql client response

* Remove circular dependency in gql client types

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30
890603061f Add script to load fixture data in database (#34)
* Add fixture data and populate database with it

* Use node to run commands in package scripts

* Move test directory out of src directory

* Save projects with user and organization relation

* Refactor and add generalized function to load data

* Populate userOrganization entity with test data

* Change project id type from number to string

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30
prathamesh0
7d54280d5c Add type for outlet context used for projects data (#28)
Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30
prathamesh0
af021d3357 Refactor to fetch organization and deployment details in the parent component (#23)
* Refactor to fetch organization details in the parent component

* Fetch and use deployment details for a project

* Remove deployment field from ProjectDetails type

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30
prathamesh0
9f1306f9cd Integrate gql-client in frontend (#21)
* Integrate gql-client in frontend app

* Populate home page information using gql-client

* Remove non required fields from organizations query

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30
2bd378ada5
Add updates in previously implemented pages (#40)
* Add cancel button in deployments status filter

* Add namecheap hyperlink in domain config page

* Add disconnect repo confirm dialog
2024-01-08 16:58:58 +05:30
abff6c83e5
Add confirmation for deleting domain from project settings page (#36)
* Add delete domain dialog box

* Update toast message

* Fix table warning

* Remove Toaster from other parts of code

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2023-12-28 15:31:46 +05:30
a6f9e18972
Add layout for Configure DNS section in Add domain page (#34)
* Add dns config page

* Move routes to domain/add directory

* Handle review change

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2023-12-28 14:05:01 +05:30
f870ab90f7
Add layout for Git tab in project settings (#31)
* Implement layout and functionality for git tab panel

* Refactor project repository card prop

* Add repo selection handler prop

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2023-12-28 11:52:05 +05:30
94c4da0175
Add form for adding new domains (#30)
* Add layout to implement addition of new domains

* Refactor code

* Add page to setup domain name

* Update layout of add domain page

* Use react-hook-form in add domain page

* Remove unnecessary code

* Handle review change

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2023-12-27 18:26:20 +05:30
0268656d2f
Add page for new domain in project settings (#28)
* Add layout to implement addition of new domains

* Handle review changes

* Move AddDomain component to pages directory

* Use useLocation for pathname

* Use relative paths to navigate between pages

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2023-12-27 11:54:47 +05:30
ef72a0351e
Refactor routes with layout and show search bar in project details page (#23)
* Refactor routes with layout and show search bar in project details page

* Set common search layout for child routes
2023-12-22 14:19:59 +05:30
e93cca598a
Add transfer and delete project in settings tab panel (#22)
* Add dialogs for transfer and delete project

* Refactor confirm dialog

* Handle form state of transfer and delete dialog

* Handle default value of transfer dropdown

* Add space in delete dialog body

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2023-12-22 12:31:30 +05:30
0a1a53e0bc
Add chips to display different kinds of information (#20)
* Add chip for showing deployment status

* Add chip to display projects count

* Display label if project search is not matching

* Add chip to display domain is not connected

* Fix text size in chips for deployment domain

* Add chip to display if repository is private

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2023-12-21 16:42:06 +05:30
3133fb989f
Fix text colors and visibility throughout app (#19) 2023-12-21 14:59:33 +05:30
6590b8f6f5
Show deploy step logs in collapsible component (#16)
* Use collapse to display process logs

* Implement functionality to copy log button

* Implement functionality to copy project id

* Add toast for successful copy

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2023-12-21 09:45:14 +05:30
cfb299c79e
Implement vertical stepper in create new project with template flow (#14)
* Implement vertical stepper in create project page

* Handle if active step is not found

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2023-12-20 16:30:08 +05:30
d04517d9bb
Implement confirmation dialog and menu popup (#12)
* Implement confirmation dialog for cancel deployment

* Add menu to project and deployment card

* Use dropdown for account selection

* Organize create project components

* Refactor cancel deployment dialog

* Fix cancel button flex align

* Fix typo

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2023-12-20 12:03:05 +05:30
c0a20c80a2
Implement layout for Project settings tab panel (#10)
* Implement tab functionality for settings pannel

* Use material ui input component

* Handle form state of general panel

* Organize project components

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2023-12-20 10:16:10 +05:30
0b91771e90
Implement projects search functionality in home page (#11)
* Implement search functionality with downshift

* Show project details in suggestions and handle selection

* Rename component to ProjectSearch

* Use renamed component
2023-12-20 09:59:02 +05:30
3c220c5dc6
Implement layout for deploy success page (#9)
Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2023-12-19 15:54:15 +05:30
620e1aad53
Integrate material tailwind library (#8) 2023-12-19 14:47:02 +05:30
3e00ef555c
Implement layout for Deploy section of creating new project (#7)
* Implement layout for deploy page

* Add time functionality in deploy page

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2023-12-19 14:22:25 +05:30
cc071dddcf
Implement layout for creating new project with template (#6)
* Create layout for create project with template

* Handle create project with tempalte form

* Refactor pages folder according to routes

* Add navigation to create project with template page

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2023-12-18 16:58:17 +05:30
5a17747be2
Add layout for overview panel in project details page (#3)
* Create layout for overview panel

* Populate project details in overview panel

* Add more types

* Fix typo

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2023-12-14 18:17:46 +05:30
348ff92fa9
Implement tabs functionality in project details page (#2)
* Add navigation for project page

* Use tab component for switching panels

* Get project details only on id changes

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2023-12-14 16:27:53 +05:30
bb723ee58a
Add dummy data for project cards in home page (#1)
* Add switching of repository list and connect account

* Populate project cards with dummy projects data

* Fix typos of dummy datas

* Fix prettier error

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2023-12-13 17:42:39 +05:30
4b5949cd81
Implement page for creating new project (#8)
* Implement basic layout to create new project

* Use dummy datas to populate the cards

* Format repository updated time using luxon

* Move repository list to components folder

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2023-12-13 13:55:25 +05:30
c6c3ab03c3
Implement projects page with cards (#7)
* Implement layout for the projects page

* Organize pages according to routes

* Handle data from search bar

* Get search data on submit

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2023-12-12 17:54:20 +05:30
4f6a523f56
Create layout for home page (#6)
* Create layout for sidebar and projects page

* Refactor routes for dashboard

* Add navigation to sidebar elements

* Update README

* Remove space in class name

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2023-12-11 20:05:34 +05:30