
Security News
Vite Releases Technical Preview of Rolldown-Vite, a Rust-Based Bundler
Vite releases Rolldown-Vite, a Rust-based bundler preview offering faster builds and lower memory usage as a drop-in replacement for Vite.
@preply/navigation
Advanced tools
This package contains main navigation components used across the pages: header and navigation menu (aka 'black' menu)
This package is using live data from your active user profile on your localhost environment.
If you want to see the different states of the navigation (i.e for an Approved tutor vs an Applicant one) you can login into different profiles and then see changes reflected in Storybook.
It's been a mess and I'd appreciate if anyone could solve this properly but after a couple of days of wrangling with @preply/shared
and navigation
I see no other viable option to work on this.
Do yarn add file:../../../yarn-workspace/packages/shared
don't commit yarn.lock
changes
yarn --ignore-optional
doesn't work as intended (it's literally bugged) so it's no use to install it as optional dependency
uncomment rebrand related lines in .storybook/config.js
and /src/Navigation.stories.tsx
This is a temporary setup until FE platform figures out how to run these together or rebrand components are moved to DS.
Build
docker-compose run --rm main yarn build
:warning: This doesn't work from docker so far. Propbably need to try storybook-docker or smth
Start storybook
docker-compose up
yarn
, so you'll need to run yarn
in the project folder before starting to work on it. Installing deps via npm install
won't work.yarn storybook
You have a few options to test the Navigation library in the context of Preply-Space, npm pack, npm/yarn link, and yalc. Here is an example with yalc for a quick start guide.
yarn global add yalc
Use the following bash scripts to run and clean:
yarn dev && yalc publish && cd ../../preply-space && yalc add @preply/navigation && yarn start
Yarn dev might take quite some time, (ranging between 2 and 11 minutes, so stay patient even if the terminal seems stuck)
Rerun this command to fetch new changes if needed.cd ../../preply-space && yalc remove @preply/navigation
Build
yarn dev
Install or link the local version of @preply/navigation
in the monolith:
Go to http://localhost:9001
preply-space
locally, impersonate there, and it should log in the Navigation's storybook as well.More info: Slack.
Refer to the ESLint in Preply: How to for a detailed guide on how we pursue the same codestyle within different projects at Preply.
:bulb: You’ll need to install dependencies in the repo root by running yarn
there to enable linting via CLI.
Errors from this service are reported to Sentry under client-pkgs project.
To filter errors that are only related to this service use source
tag.
Follow this readme
yarn add @preply/navigation -E
import { Header, NavigationMenu, NavigationConfig } from `@preply/navigation`
<NavigationConfig {...props}>
<Header />
{includeNavMenu && <NavigationMenu />}
</NavigationConfig>
In order to prevent page jumping while the Header
is being rendered, you might need to wrap it into a placeholder with 70px height
language
: string - current page language
currentPath
: string - current router path
options
: NavigationOptions [Optional] - configuration options:
apiHost
: string - GraphQL API host url (e.g. http://localhost
)
@preply/ui
to create Select
and Notification
components and replace those temp ones copypasted into hereredux
(it's a legacy stuff and being used only for fetching lessons in a single place)The piece of code responsible for rendering notifications is located in ./src/components/Header/notifications/index.tsx.
The component in charge of rendering the notifications once is open is NotificationList
.
All the bell notifications are listed within
NotificationList.customSystemMessage: (React.ReactElement<any, string | React.JSXElementConstructor<any>> | null)[];
Currently, there are some notifications that if available to be seen, will expand automatically the bell notification display, view popupVisible
.
Currently, there are also some notifications that even if they are available, the bell notification display will not be opened BUT there will be a badge indicating there is a bell notification, for instance allNotificationsCount
.
Currently, some notifications use query
and mutation
calls to the server to get and give information with respect to the visibility, status, and perhaps content of a particular notification. For instance, see the Certificate Notification (under an experiment as well):
Most, if not all of the bell notification components are using the direct implementation of ./src/components/Header/notifications/NotificationItem/index.tsx as the parent component where they compose the notification.
An example for the usage of NotificationItem
can be found in ./src/components/Header/notifications/KidsSearch/index.tsx
For more information on the different bell notifications, please refer to Confluence
FAQs
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Vite releases Rolldown-Vite, a Rust-based bundler preview offering faster builds and lower memory usage as a drop-in replacement for Vite.
Research
Security News
A malicious npm typosquat uses remote commands to silently delete entire project directories after a single mistyped install.
Research
Security News
Malicious PyPI package semantic-types steals Solana private keys via transitive dependency installs using monkey patching and blockchain exfiltration.