Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Summer Refactor #3311

Open
14 of 20 tasks
petersopko opened this issue Jun 30, 2022 · 12 comments
Open
14 of 20 tasks

Summer Refactor #3311

petersopko opened this issue Jun 30, 2022 · 12 comments
Labels
A-refactoring Refactoring stuff, make code more readable, mitigating tech debt chief

Comments

@petersopko
Copy link
Contributor

petersopko commented Jun 30, 2022

As discussed in multiple places here, we got to a point where our codebase deserves serious refactor. Except for making our life easier, this would be great help for newcomers, since some things became quite messy/chaotic over the months of remote/async development.

following up from discussion here:

When it comes to the folder structure, I prefer the way @kkukelka described his approach in the discussion:

I like to divide stuff in either context-specific or functionality-specific folders
e.g. for context-specific:

/payment
/payment/CheckoutComponent.vue
/payment/BillingComponent.vue
@petersopko petersopko added p5 ideas for future chief A-refactoring Refactoring stuff, make code more readable, mitigating tech debt and removed p5 ideas for future labels Jun 30, 2022
@petersopko
Copy link
Contributor Author

@kkukelka @roiLeo @vikiival I've moved the ideas from discussion about this into more actionable version, please feel free to add / modify whatever you find valuable

@vikiival
Copy link
Member

vikiival commented Aug 4, 2022

So far short list

# Components we need

## Shared
- Auth
- Avatar
- Identity
- CollapseWrapper
- CommonTable
- LabeledText - (label, slot)

## Form
- DropUpload
- SubmitButton
- Collection Select
- Basic
  - Input
  - Switch
  - CheckBoxButton
  - NumberInput
  - Slider
- BalanceInput
  - Simple
  - Multicurrency
- AddressInput
  - Simple
  - Strict
  - WithHint
- AttributeTagInput

## View
- Money (with currency, decimal places)
- AccountBalance
- Titles (h1, h2, h3, h4, h5, h6)
- GalleryCard
- Percentage
- Image (rounded, square)


## Profile Specific
- Stats
  - Stats Column (label, slot)
- Web3 Social - sub.id, subscan, polkascan
- Sharing - donate, QR, link, share


## Lists
- GalleryCardList

## Search / Sort / Filter
- Pagination
- Buy Now
- SortDropdown
- Go to random
- ChangeLayout
- SearchInput

## Table
- Pagination (backend pagination)
- Cells
  - Type (BUY, SEND...)
  - Link (detail,) (just icon)
  - External
  - Money
  - Percentage
  - Identity?
  - Common - Just show it as text
  - RelativeDate - (9 months ago)
- WithDetail
  - list
  - gallery cards

## Charts

## Galery Item
- Navigation (through collection)
- Image
- ImageResize (fill, full-screen, grid)
- Emote?
- Title
- Description
- Attributes


### Carousel - Landing, Visited NFTs
- Image
- Title
- Money
- Creator
- current Owner

### Notification

## Chain Specific

### RMRK

### BSX

#### Offers

# Utils

@prachi00
Copy link
Member

prachi00 commented Aug 5, 2022

@vikiival dont we already have some of these components that is shared? like Identity

@vikiival
Copy link
Member

vikiival commented Aug 5, 2022

@vikiival dont we already have some of these components that is shared? like Identity

Yes, we have component called Identity but it is doing too much logic. & has more than 200 lines of code.

Our focus it to have atomic (reusable) components

@vikiival
Copy link
Member

vikiival commented Aug 8, 2022

Just found out there is a new version of Vue 2.7 that we can implement before full Vue3

Only blocking

@prachi00
Copy link
Member

prachi00 commented Aug 9, 2022

Just found out there is a new version of Vue 2.7 that we can implement before full Vue3

Only blocking

this is not a blocker then right? If not, we can follow this https://blog.vuejs.org/posts/vue-2-7-naruto.html
to upgrade to 2.7

@kkukelka
Copy link
Member

kkukelka commented Aug 9, 2022

Just found out there is a new version of Vue 2.7 that we can implement before full Vue3

Only blocking

i've updated vue to 2.7.8 in here #3689
buefy seems to work nonetheless

@preschian
Copy link
Member

some questions:

  1. it's time to remove nuxt-property-decorator and use vue composition API instead?
  2. do we need storybook to manage and preview our components?

@vikiival
Copy link
Member

vikiival commented Aug 11, 2022

it's time to remove nuxt-property-decorator and use vue composition API instead?

Yup, best time is to write new components in composition api and also refactor some.

do we need storybook to manage and preview our components?

There was an alternative for Vue3. I don't know what was it's name

@preschian
Copy link
Member

ok then, I will start with some components on the landing page #3714

@vikiival
Copy link
Member

@preschian
https://github.com/histoire-dev/histoire

@preschian
Copy link
Member

@preschian histoire-dev/histoire

looks cool, thanks, will try to experiment with it later 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-refactoring Refactoring stuff, make code more readable, mitigating tech debt chief
Projects
Status: No status
Development

No branches or pull requests

5 participants