@artsy/palette-mobile 13.0.8 → 13.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,27 @@
1
+ # v13.0.10 (Mon Sep 18 2023)
2
+
3
+ #### 🐛 Bug Fix
4
+
5
+ - fix: Add flowDirection prop to tooltip component [#151](https://github.com/artsy/palette-mobile/pull/151) ([@olerichter00](https://github.com/olerichter00))
6
+
7
+ #### Authors: 1
8
+
9
+ - Ole ([@olerichter00](https://github.com/olerichter00))
10
+
11
+ ---
12
+
13
+ # v13.0.9 (Fri Sep 15 2023)
14
+
15
+ #### 🐛 Bug Fix
16
+
17
+ - docs: update readme with Developing Features using Local Versions [#150](https://github.com/artsy/palette-mobile/pull/150) ([@gkartalis](https://github.com/gkartalis))
18
+
19
+ #### Authors: 1
20
+
21
+ - George ([@gkartalis](https://github.com/gkartalis))
22
+
23
+ ---
24
+
1
25
  # v13.0.8 (Thu Sep 14 2023)
2
26
 
3
27
  :tada: This release contains work from a new contributor! :tada:
package/README.md CHANGED
@@ -54,6 +54,43 @@ yarn start
54
54
 
55
55
  And then either open Xcode and run, or Android Studio, or run `yarn ios` or `yarn android` from the command line, or just open up the simulator if you have done this before.
56
56
 
57
+ ## Developing Features using Local Versions of Palette
58
+
59
+ When developing new components in Palette, it's often useful to test those components in consuming apps (such as Eigen). However, due to the poor support for symlinks in React Native, this can be difficult. Enter [yalc](https://github.com/wclr/yalc). Yalc is a mini package manager that one can publish to and install from, which makes it easy to test code in realtime from outside of your app.
60
+
61
+ > Note: [@artsy/palette-mobile](https://github.com/artsy/palette-mobile) uses Storybooks for developing features; work there first! Then, when ready (and if necessary), test your code locally using the flow described below. You can also publish npm canary releases from the palette-mobile repo by attaching a `canary` label to your PR.
62
+
63
+ ### Setup
64
+
65
+ - Install `yalc` globally:
66
+
67
+ ```sh
68
+ yarn global add yalc
69
+ ```
70
+
71
+ - Navigate to `palette-mobile` in the terminal and start the watcher:
72
+
73
+ ```sh
74
+ cd palette-mobile
75
+ yarn local-palette-dev
76
+ ```
77
+
78
+ - Navigate back to Eigen and link:
79
+
80
+ ```sh
81
+ cd eigen
82
+ yarn local-palette-dev
83
+ yarn start
84
+ ```
85
+
86
+ This will update `package.json` to point at the yalc-published version of palette.
87
+
88
+ - When done developing your local palette feature, be sure to unlink:
89
+
90
+ ```sh
91
+ yarn local-palette-dev:stop
92
+ ```
93
+
57
94
  ## Repos consuming Palette Mobile
58
95
 
59
96
  - [Eigen](https://github.com/artsy/eigen)
@@ -6,6 +6,8 @@ interface ToolTipContextValues {
6
6
  interface ToolTipProps {
7
7
  children?: React.ReactNode;
8
8
  enabled?: Boolean;
9
+ /** The direction the tooltip should flow. If not provided, the tooltip will flow to the left if it is near the right edge of the screen, and vice-versa */
10
+ flowDirection?: "LEFT" | "RIGHT";
9
11
  initialToolTipText?: string;
10
12
  maxWidth?: number;
11
13
  onPress?: () => void;
@@ -33,7 +33,7 @@ exports.ToolTipContext = (0, react_1.createContext)({
33
33
  * </ToolTip>
34
34
  *
35
35
  */
36
- const ToolTip = ({ children, enabled = true, initialToolTipText, maxWidth, onPress, position = "TOP", tapToDismiss = false, testID, xOffset = 0, yOffset = 5, }) => {
36
+ const ToolTip = ({ children, enabled = true, flowDirection, initialToolTipText, maxWidth, onPress, position = "TOP", tapToDismiss = false, testID, xOffset = 0, yOffset = 5, }) => {
37
37
  const { space } = (0, useTheme_1.useTheme)();
38
38
  const mWidth = (0, useScreenDimensions_1.useScreenDimensions)().width - space(2) * 2; // 40 accounting for padding 20 on each side of the screen
39
39
  const MAX_TOOLTIP_WIDTH = maxWidth ?? mWidth;
@@ -51,8 +51,8 @@ const ToolTip = ({ children, enabled = true, initialToolTipText, maxWidth, onPre
51
51
  // Calculate the direction of flow of the tooltip. So a tooltip near the right edge of the screen
52
52
  // should flow to the left so it remains in the viewport, and vice-versa. Without this, tooltip
53
53
  // around the edges can flow off screen
54
- const nearLeftEdge = pageX < mWidth / 4;
55
- const nearRightEdge = pageX > mWidth - mWidth / 4;
54
+ const nearLeftEdge = pageX < mWidth / 4 || flowDirection === "RIGHT";
55
+ const nearRightEdge = pageX > mWidth - mWidth / 4 || flowDirection === "LEFT";
56
56
  const extraStyle = nearLeftEdge ? { left: 0 } : nearRightEdge ? { right: 0 } : undefined;
57
57
  return ((0, jsx_runtime_1.jsxs)(exports.ToolTipContext.Provider, { value: {
58
58
  dismissToolTip,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@artsy/palette-mobile",
3
- "version": "13.0.8",
3
+ "version": "13.0.10",
4
4
  "description": "Artsy's design system for React Native",
5
5
  "scripts": {
6
6
  "android": "react-native run-android",