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

[DRAFT] testing new github action #55948

Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
20b38b2
fix problem in WorkspaceInitialPage when adding new feature
sumo-slonik Jan 20, 2025
8736bbd
Merge branch 'main' into feature/kuba_nowakowski/add_animation_for_sw…
sumo-slonik Jan 20, 2025
91e739a
add accordion component
sumo-slonik Jan 20, 2025
6ac60f3
fix imports
sumo-slonik Jan 20, 2025
760362c
Merge branch 'main' into feature/kuba_nowakowski/add_animation_for_sw…
sumo-slonik Jan 21, 2025
b61a2fd
Merge branch 'main' into feature/kuba_nowakowski/add_animation_for_sw…
sumo-slonik Jan 22, 2025
6d0bc8b
fix entering animation bug
sumo-slonik Jan 24, 2025
88998d1
rename function
sumo-slonik Jan 24, 2025
107731c
Merge branch 'main' into feature/kuba_nowakowski/add_animation_for_sw…
sumo-slonik Jan 24, 2025
aa3e3b7
rename function
sumo-slonik Jan 24, 2025
9839df6
better naming for function parameters
sumo-slonik Jan 24, 2025
e84be2a
fix import
sumo-slonik Jan 24, 2025
2f73c2f
remove unused function
sumo-slonik Jan 28, 2025
bd90b09
Merge branch 'main' into feature/kuba_nowakowski/add_animation_for_sw…
sumo-slonik Jan 28, 2025
44a9e2c
resolve conflicts
sumo-slonik Jan 28, 2025
a278e11
fix linter
sumo-slonik Jan 28, 2025
7b99d7b
add GitHub actions to verify
sumo-slonik Jan 29, 2025
e87c58c
change .js file
sumo-slonik Jan 29, 2025
2380b29
change .js file
sumo-slonik Jan 29, 2025
aa2985a
change workflow
sumo-slonik Jan 29, 2025
cc0300c
change file access
sumo-slonik Jan 29, 2025
0fe8b55
no changes in js
sumo-slonik Jan 29, 2025
6929cab
no changes in js
sumo-slonik Jan 29, 2025
920515a
no changes in js
sumo-slonik Jan 29, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions .github/scripts/checkParser.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#!/bin/bash

set -e

START_DIR=$(pwd)
ROOT_DIR=$(dirname "$(dirname "$(dirname "${BASH_SOURCE[0]}")")")
cd "$ROOT_DIR" || exit 1


pwd
git fetch origin main

js_changed=$(git diff --name-only origin/main -- "src/libs/SearchParser/*.js")
peggy_changed=$(git diff --name-only origin/main -- "src/libs/SearchParser/*.peggy")

autocomplete_parser_backup="src/libs/SearchParser/autocompleteParser.js.bak"
search_parser_backup="src/libs/SearchParser/searchParser.js.bak"

cp src/libs/SearchParser/autocompleteParser.js "$autocomplete_parser_backup" 2>/dev/null
cp src/libs/SearchParser/searchParser.js "$search_parser_backup" 2>/dev/null

npm run generate-search-parser
npm run generate-autocomplete-parser


if ! diff -q "$autocomplete_parser_backup" src/libs/SearchParser/autocompleteParser.js >/dev/null ||
! diff -q "$search_parser_backup" src/libs/SearchParser/searchParser.js >/dev/null; then
exit 1
else
exit 0
fi
25 changes: 25 additions & 0 deletions .github/workflows/verifyParserFiles.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Check consistency of search parser files

on:
pull_request:
types: [opened, synchronize]
branches-ignore: [staging, production]
paths:
- "src/libs/SearchParser/**"

jobs:
verify:
if: github.actor != 'OSBotify' && github.actor != 'imgbot[bot]'
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node
uses: ./.github/actions/composite/setupNode

- name: Check file format
run: file .github/scripts/checkParser.sh

- name: Checking consistency
run: ./.github/scripts/checkParser.sh
81 changes: 81 additions & 0 deletions src/components/Accordion/index.native.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
import type {ReactNode} from 'react';
import React from 'react';
import type {StyleProp, ViewStyle} from 'react-native';
import {View} from 'react-native';
import type {SharedValue} from 'react-native-reanimated';
import Animated, {Easing, useAnimatedStyle, useDerivedValue, useSharedValue, withTiming} from 'react-native-reanimated';
import useThemeStyles from '@hooks/useThemeStyles';

type AccordionProps = {
/** Giving information whether the component is open */
isExpanded: SharedValue<boolean>;

/** Element that is inside Accordion */
children: ReactNode;

/** Duration of expansion animation */
duration?: number;

/** Additional external style */
style?: StyleProp<ViewStyle>;

/** Was toggle triggered */
isToggleTriggered: SharedValue<boolean>;
};

function Accordion({isExpanded, children, duration = 300, isToggleTriggered, style}: AccordionProps) {
const height = useSharedValue(0);
const styles = useThemeStyles();

const derivedHeight = useDerivedValue(() => {
if (!isToggleTriggered.get()) {
return isExpanded.get() ? height.get() : 0;
}

return withTiming(height.get() * Number(isExpanded.get()), {
duration,
easing: Easing.inOut(Easing.quad),
});
});

const derivedOpacity = useDerivedValue(() => {
if (!isToggleTriggered.get()) {
return isExpanded.get() ? 1 : 0;
}

return withTiming(isExpanded.get() ? 1 : 0, {
duration,
easing: Easing.inOut(Easing.quad),
});
});

const animatedStyle = useAnimatedStyle(() => {
if (!isToggleTriggered.get() && !isExpanded.get()) {
return {
height: 0,
opacity: 0,
};
}
return {
height: !isToggleTriggered.get() ? height.get() : derivedHeight.get(),
opacity: derivedOpacity.get(),
};
});

return (
<Animated.View style={[animatedStyle, style]}>
<View
onLayout={(e) => {
height.set(e.nativeEvent.layout.height);
}}
style={[styles.pAbsolute, styles.l0, styles.r0, styles.t0]}
>
{children}
</View>
</Animated.View>
);
}

Accordion.displayName = 'Accordion';

export default Accordion;
78 changes: 78 additions & 0 deletions src/components/Accordion/index.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
import type {ReactNode} from 'react';
import React from 'react';
import type {StyleProp, ViewStyle} from 'react-native';
import {View} from 'react-native';
import type {SharedValue} from 'react-native-reanimated';
import Animated, {Easing, useAnimatedStyle, useDerivedValue, useSharedValue, withTiming} from 'react-native-reanimated';

type AccordionProps = {
/** Giving information whether the component is open */
isExpanded: SharedValue<boolean>;

/** Element that is inside Accordion */
children: ReactNode;

/** Duration of expansion animation */
duration?: number;

/** Additional external style */
style?: StyleProp<ViewStyle>;

/** Was toggle triggered */
isToggleTriggered: SharedValue<boolean>;
};

function Accordion({isExpanded, children, duration = 300, isToggleTriggered, style}: AccordionProps) {
const height = useSharedValue(0);

const derivedHeight = useDerivedValue(() => {
if (!isToggleTriggered.get()) {
return isExpanded.get() ? height.get() : 0;
}

return withTiming(height.get() * Number(isExpanded.get()), {
duration,
easing: Easing.inOut(Easing.quad),
});
});

const derivedOpacity = useDerivedValue(() => {
if (!isToggleTriggered.get()) {
return isExpanded.get() ? 1 : 0;
}

return withTiming(isExpanded.get() ? 1 : 0, {
duration,
easing: Easing.inOut(Easing.quad),
});
});

const animatedStyle = useAnimatedStyle(() => {
if (!isToggleTriggered.get() && !isExpanded.get()) {
return {
height: 0,
opacity: 0,
};
}

return {
height: !isToggleTriggered.get() ? undefined : derivedHeight.get(),
opacity: derivedOpacity.get(),
};
});

return (
<Animated.View style={[animatedStyle, style]}>
<View
onLayout={(e) => {
height.set(e.nativeEvent.layout.height);
}}
>
{children}
</View>
</Animated.View>
);
}
Accordion.displayName = 'Accordion';

export default Accordion;
10 changes: 8 additions & 2 deletions src/libs/Navigation/linkTo/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,13 @@ export default function linkTo(navigation: NavigationContainerRef<RootStackParam
}
}

if (action && 'payload' in action && action.payload && 'name' in action.payload && isSideModalNavigator(action.payload.name)) {
if (
action &&
'payload' in action &&
action.payload &&
'name' in action.payload &&
(isSideModalNavigator(action.payload.name) || action.payload.name === NAVIGATORS.FULL_SCREEN_NAVIGATOR)
) {
// Information about the state may be in the params.
const currentFocusedRoute = findFocusedRoute(extrapolateStateFromParams(rootState));
const targetFocusedRoute = findFocusedRoute(stateFromPath);
Expand All @@ -201,7 +207,7 @@ export default function linkTo(navigation: NavigationContainerRef<RootStackParam
// There are situations where a route already exists on the current navigation stack
// But we want to push the same route instead of going back in the stack
// Which would break the user navigation history
if (!isActiveRoute && type === CONST.NAVIGATION.ACTION_TYPE.PUSH) {
if ((!isActiveRoute && type === CONST.NAVIGATION.ACTION_TYPE.PUSH) || action.payload.name === NAVIGATORS.FULL_SCREEN_NAVIGATOR) {
minimalAction.type = CONST.NAVIGATION.ACTION_TYPE.PUSH;
}
root.dispatch(minimalAction);
Expand Down
6 changes: 3 additions & 3 deletions src/libs/PolicyUtils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1063,9 +1063,9 @@ function removePendingFieldsFromCustomUnit(customUnit: CustomUnit): CustomUnit {
return cleanedCustomUnit;
}

function navigateWhenEnableFeature(policyID: string) {
function goBackWhenEnableFeature(policyID: string) {
setTimeout(() => {
Navigation.navigate(ROUTES.WORKSPACE_INITIAL.getRoute(policyID));
Navigation.goBack(ROUTES.WORKSPACE_INITIAL.getRoute(policyID));
}, CONST.WORKSPACE_ENABLE_FEATURE_REDIRECT_DELAY);
}

Expand Down Expand Up @@ -1355,7 +1355,7 @@ export {
getDistanceRateCustomUnitRate,
sortWorkspacesBySelected,
removePendingFieldsFromCustomUnit,
navigateWhenEnableFeature,
goBackWhenEnableFeature,
getIntegrationLastSuccessfulDate,
getCurrentConnectionName,
getCustomersOrJobsLabelNetSuite,
Expand Down
1 change: 1 addition & 0 deletions src/libs/SearchParser/autocompleteParser.js
Original file line number Diff line number Diff line change
Expand Up @@ -272,6 +272,7 @@ function peg$parse(input, options) {
var peg$f0 = function(ranges) { return { autocomplete, ranges }; };
var peg$f1 = function(filters) { return filters.filter(Boolean).flat(); };
var peg$f2 = function(key, op, value) {
// tutaj jakoś coś
if (!value) {
autocomplete = {
key,
Expand Down
1 change: 1 addition & 0 deletions src/libs/SearchParser/autocompleteParser.peggy
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ filter = @(defaultFilter / freeTextFilter)

defaultFilter
= _ key:autocompleteKey _ op:operator _ value:identifier? {
// tutaj jakoś coś
if (!value) {
autocomplete = {
key,
Expand Down
8 changes: 4 additions & 4 deletions src/libs/actions/Policy/Category.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ import {translateLocal} from '@libs/Localize';
import Log from '@libs/Log';
import enhanceParameters from '@libs/Network/enhanceParameters';
import {hasEnabledOptions} from '@libs/OptionsListUtils';
import {getPolicy, navigateWhenEnableFeature} from '@libs/PolicyUtils';
import {getPolicy, goBackWhenEnableFeature} from '@libs/PolicyUtils';
import {getAllPolicyReports} from '@libs/ReportUtils';
import CONST from '@src/CONST';
import ONYXKEYS from '@src/ONYXKEYS';
Expand Down Expand Up @@ -958,7 +958,7 @@ function deleteWorkspaceCategories(policyID: string, categoryNamesToDelete: stri
API.write(WRITE_COMMANDS.DELETE_WORKSPACE_CATEGORIES, parameters, onyxData);
}

function enablePolicyCategories(policyID: string, enabled: boolean, shouldNavigate = true) {
function enablePolicyCategories(policyID: string, enabled: boolean, shouldGoBack = true) {
const onyxUpdatesToDisableCategories: OnyxUpdate[] = [];
if (!enabled) {
onyxUpdatesToDisableCategories.push(
Expand Down Expand Up @@ -1029,8 +1029,8 @@ function enablePolicyCategories(policyID: string, enabled: boolean, shouldNaviga

API.write(WRITE_COMMANDS.ENABLE_POLICY_CATEGORIES, parameters, onyxData);

if (enabled && getIsNarrowLayout() && shouldNavigate) {
navigateWhenEnableFeature(policyID);
if (enabled && getIsNarrowLayout() && shouldGoBack) {
goBackWhenEnableFeature(policyID);
}
}

Expand Down
4 changes: 2 additions & 2 deletions src/libs/actions/Policy/DistanceRate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import type {
import {READ_COMMANDS, WRITE_COMMANDS} from '@libs/API/types';
import * as ErrorUtils from '@libs/ErrorUtils';
import getIsNarrowLayout from '@libs/getIsNarrowLayout';
import {getDistanceRateCustomUnit, navigateWhenEnableFeature, removePendingFieldsFromCustomUnit} from '@libs/PolicyUtils';
import {getDistanceRateCustomUnit, goBackWhenEnableFeature, removePendingFieldsFromCustomUnit} from '@libs/PolicyUtils';
import * as ReportUtils from '@libs/ReportUtils';
import CONST from '@src/CONST';
import ONYXKEYS from '@src/ONYXKEYS';
Expand Down Expand Up @@ -166,7 +166,7 @@ function enablePolicyDistanceRates(policyID: string, enabled: boolean) {
API.write(WRITE_COMMANDS.ENABLE_POLICY_DISTANCE_RATES, parameters, onyxData);

if (enabled && getIsNarrowLayout()) {
navigateWhenEnableFeature(policyID);
goBackWhenEnableFeature(policyID);
}
}

Expand Down
8 changes: 4 additions & 4 deletions src/libs/actions/Policy/PerDiem.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import getIsNarrowLayout from '@libs/getIsNarrowLayout';
import {translateLocal} from '@libs/Localize';
import enhanceParameters from '@libs/Network/enhanceParameters';
import * as NumberUtils from '@libs/NumberUtils';
import {navigateWhenEnableFeature} from '@libs/PolicyUtils';
import {goBackWhenEnableFeature} from '@libs/PolicyUtils';
import * as ReportUtils from '@libs/ReportUtils';
import CONST from '@src/CONST';
import ONYXKEYS from '@src/ONYXKEYS';
Expand Down Expand Up @@ -70,7 +70,7 @@ function generateCustomUnitID(): string {
return NumberUtils.generateHexadecimalValue(13);
}

function enablePerDiem(policyID: string, enabled: boolean, customUnitID?: string, disableRedirect?: boolean) {
function enablePerDiem(policyID: string, enabled: boolean, customUnitID?: string, shouldGoBack?: boolean) {
const doesCustomUnitExists = !!customUnitID;
const finalCustomUnitID = doesCustomUnitExists ? customUnitID : generateCustomUnitID();
const optimisticCustomUnit = {
Expand Down Expand Up @@ -123,8 +123,8 @@ function enablePerDiem(policyID: string, enabled: boolean, customUnitID?: string

API.write(WRITE_COMMANDS.TOGGLE_POLICY_PER_DIEM, parameters, onyxData);

if (enabled && getIsNarrowLayout() && !disableRedirect) {
navigateWhenEnableFeature(policyID);
if (enabled && getIsNarrowLayout() && shouldGoBack) {
goBackWhenEnableFeature(policyID);
}
}

Expand Down
Loading
Loading