Redux
First think i want to mention is redux. I am a big fan of it. But nowadays there many different and more light substitutions that are present.
So first thing that comes as an alternative are custom hooks to be used to fetch, mutate, and manipulate with data. Basic example of such thing in auth flow.
export const AuthProvider: React.FC<AuthProviderProps> = ({ children }) => {
const swrKey = {
from: 'profile_info',
select: [
'id',
'user',
'userRole:user_role'
],
}
// Doesnt matter which exactly fetcher is being used
const {
data: profile,
error: globalError,
isLoading,
isValidating,
} = useSWR<Profile, ApiError>(swrKey, databaseSelector)
return <Context.Provider value={value}>{children}</Context.Provider>
}
So, this is a very simple context hook which gives you an opportunity to easily manage the way data is stored, and actually is very easy to be scaled.
It also applies to the managing the styles.
It also applies to the services you have. As for now, i have not seen anything difficult or huge .But then as far as time goes, it will be increased in it's size, and may become difficult to refactor, So i would personally recommend to write some kind of hook that works with the database, and has usual methods which simulate everyday life cycle of communicating with backend(such straight things as fetching, mutating...)
Going next.
Documentation
A very nice thing is to actually see what you have done. So here comes as an approach to track the progress such libraries as React Sketch. app, React Storybook, Bit, Pattern Lab. So basically, is a documentation that you fill up with your components to see different options that are available within them. It helps to have a better understanding of your project.
Also about it. i have looked into many files and noticed that not so much of them have the comments and at least described props, which can be really handsome, whenever many developers are working in a team.
Going next.
SVG files
Also i would recommend to actually change the way you are storing the SVG files. It is very easy to be converted to jsx/tsx files, and they it would be able to receive props, etc..
Thank you for your feature request – we love each and every one!