I have a React App with a global custom cursor (not only a png changed in CSS, but a colored circle-div that‘s following the mouse).
My App consists of various child components (project teasers), when hovering those project teaser components the cursor component should change size, color and text content.
I have no experience with Redux so far, but do I need to store the cursor state in Redux for such a scenario or can I pass it down another way?
Thanks.
You can either use react context/redux or manually pass down the props each component. If you want study react context, here's a good article.
Related
I am trying to copy the parts inside black circles on the image below for training React and Material UI. My problem is that I am struggling a bit with which Material UI components to use... Any help or examples that looks like this are happily accepted!
There are some components from material-ui for composing the UI like what you asked for. You need to compose these components by yourself.
For components inside the long black circle, they can be from selects https://mui.com/components/selects/. You can find different styles from this link.
For components inside another circle. They are buttons, text_fields, chips, and cards. Which can be found from
https://mui.com/components/buttons/ https://mui.com/components/text-fields/ https://mui.com/components/chips/ https://mui.com/components/cards/
Can't give an answer for the part of Minerva Obj Name without knowing how it is interacted.
I'm looking to use the React Transition Group library to animate some stuff in my React page. According to those docs, the TransitionGroup component does the following:
The <TransitionGroup> component manages a set of transition components
( and <CSSTransition>) in a list. Like with the transition
components, <TransitionGroup> is a state machine for managing the
mounting and unmounting of components over time.
Consider the example below. As items are removed or added to the
TodoList the in prop is toggled automatically by the
<TransitionGroup>.
I'm not really sure what that means or why it's important.
Also, when I modify the example code that they embed on the documentation page so that the <TransitionGroup> tags are replaced with <ul> tags everything seems to work just fine (I can remove todo items by clicking on them, I can add new todo items).
Why is <TransitionGroup> component necessary? What does it do? (And why do things appear to work just fine when I replace it with an unordered list?)
React Transition Group has some advantages over typical css animations.These are some points that are coming to my mind.
Its uses binding to change classes for a components. eg: enter, appear, enter-active, appear-active, exit, exit-active etc are all part of animation classes. This make it really interactive interms of rich animations which you can not achive otherwise.
It has advatage to unmount your component using javascript, once animation is done. So basically no extra load on your front end.
It gives your freedom to define animations which ever way you like. Either css classes or defineing your own styles with in js file.
It gives you various type of animation options. Eg: Switch Transitions, Transition Groups, CssTransitions etc.
I would suggest to keep experimenting with typical css animations and react transition group and come to your own conclusion.
My issue stems from wishing to have a mobile phone rendered in the page, which mimics that of an actual phone. I would like to use components from Material UI such as AppBar and Dialog, however they do not stay confined to the container of the phone, and instead still show in the entire browser window.
When I use a Dialog Component however, it's still relative to the actual browser viewport, and not that of the "phone", such as the following:
I would like it to do what is seen in the picture below, without using an IFrame.
Is there a way I can set an anchor for the components - or at least force them to treat a specific element as their boundary? Thanks.
For those wondering if this is resolved, the solution was to roll my own Dialog and Backdrop Components with Paper, and Box components.
A ref was passed into a Box component which surrounds the entire "Phone App", and it's current Element is passed into a Mui Portal's container property.
This allows for the container of the Custom "Dialog" to be the container I wished to have things bounded by.
I'm attempting to open an external window and display React components inside of it. My implementation follows this article - https://medium.com/hackernoon/using-a-react-16-portal-to-do-something-cool-2a2d627b0202
Here's a gif of the problem - https://streamable.com/unfom
GitHub repo that reproduces the problem - https://github.com/sh3nan1gans/material-ui-external-window
I learned that I needed to use a custom JSS insertion point for the children of my external window so that any material-ui components would insert their styles into the external document.head instead of the original document. The problem with this is that when the external window is closed the material-ui components aren't styled correctly and components that use portals (i.e., Menus) don't anchor correctly. It seems like I need to reset the insertion point once the external window is closed.
Was able to figure it out based on this example - https://codesandbox.io/s/308nkoz2xp
The piece that I was missing was passing a new Map() into the sheetsManager prop for the StylesProvider
I've recently gotten into React Leaflet and from what I've gathered from the docs, it is not possible to add a custom React Element (Component or pure functional) as a marker.
What I want to achieve is to be able to use my React Element which is an SVG icon as the marker. This would be useful because I'll need to display several different color icons and it's way more convenient to pass the color as props and let React create the marker.
Am I right in assuming this isn't possible?
You are incorrect! :) React-leaflet allows the creation of custom components. Also, you should check out react-leaflet-div-icon since it seems like it's exactly what you need.