From 335d2280a18ede8f5d99cdb9ee4bcdf50ec0b465 Mon Sep 17 00:00:00 2001
From: songchenglin3 <353833373@qq.com>
Date: Tue, 18 Mar 2025 12:48:00 +0800
Subject: [PATCH 1/2] fix(fixednav): harmony
---
 src/config.json                            |  2 +-
 src/packages/fixednav/demo.taro.tsx        |  5 +-
 src/packages/fixednav/demos/h5/demo5.tsx   | 11 ++-
 src/packages/fixednav/demos/taro/demo1.tsx | 21 +++---
 src/packages/fixednav/demos/taro/demo2.tsx | 23 +++---
 src/packages/fixednav/demos/taro/demo3.tsx | 19 +++--
 src/packages/fixednav/demos/taro/demo4.tsx | 22 +++---
 src/packages/fixednav/fixednav.scss        | 82 ++++++++++++----------
 src/packages/fixednav/fixednav.taro.tsx    |  6 +-
 src/packages/fixednav/fixednav.tsx         |  4 +-
 10 files changed, 104 insertions(+), 91 deletions(-)
diff --git a/src/config.json b/src/config.json
index 7b054c0244..84a46e709e 100644
--- a/src/config.json
+++ b/src/config.json
@@ -330,7 +330,7 @@
           "taro": true,
           "v15": 100,
           "author": "Ymm0008",
-          "dd": false
+          "dd": true
         },
         {
           "version": "3.0.0",
diff --git a/src/packages/fixednav/demo.taro.tsx b/src/packages/fixednav/demo.taro.tsx
index c161ebe614..4a27b8a734 100644
--- a/src/packages/fixednav/demo.taro.tsx
+++ b/src/packages/fixednav/demo.taro.tsx
@@ -1,6 +1,7 @@
 import React from 'react'
 import Taro from '@tarojs/taro'
 import { ScrollView } from '@tarojs/components'
+import { harmony } from '@/utils/platform-taro'
 import Header from '@/sites/components/header'
 import Demo1 from './demos/taro/demo1'
 import Demo2 from './demos/taro/demo2'
@@ -17,8 +18,8 @@ const FixedNavDemo = () => {
         
         
         
-        {/*  */}
-        
+        {/* 配合 Drag 支持拖拽 ,harmony暂不支持 */}
+        {harmony() ? null : }
       
     >
   )
diff --git a/src/packages/fixednav/demos/h5/demo5.tsx b/src/packages/fixednav/demos/h5/demo5.tsx
index 2943f1ec0b..17fdd9b87f 100644
--- a/src/packages/fixednav/demos/h5/demo5.tsx
+++ b/src/packages/fixednav/demos/h5/demo5.tsx
@@ -1,7 +1,8 @@
 import React, { useState } from 'react'
-import { Drag, FixedNav } from '@nutui/nutui-react'
+import { Drag, FixedNav, useRtl } from '@nutui/nutui-react'
 
 const Demo5 = () => {
+  const rtl = useRtl()
   const list = [
     {
       id: 1,
@@ -37,7 +38,13 @@ const Demo5 = () => {
   }
   return (
     <>
-      
+      
          {
   const list = [
@@ -36,17 +37,15 @@ const Demo1 = () => {
     console.log(item, event)
   }
   return (
-    <>
-      
-    >
+    
   )
 }
 export default Demo1
diff --git a/src/packages/fixednav/demos/taro/demo2.tsx b/src/packages/fixednav/demos/taro/demo2.tsx
index fe8b0a3f29..d874bdb6c1 100644
--- a/src/packages/fixednav/demos/taro/demo2.tsx
+++ b/src/packages/fixednav/demos/taro/demo2.tsx
@@ -1,5 +1,6 @@
 import React, { useState } from 'react'
 import { FixedNav } from '@nutui/nutui-react-taro'
+import pxTransform from '@/utils/px-transform'
 
 const Demo2 = () => {
   const list = [
@@ -36,18 +37,16 @@ const Demo2 = () => {
     console.log(item, event)
   }
   return (
-    <>
-      
-    >
+    
   )
 }
 export default Demo2
diff --git a/src/packages/fixednav/demos/taro/demo3.tsx b/src/packages/fixednav/demos/taro/demo3.tsx
index bc92d8b776..4e91c5f835 100644
--- a/src/packages/fixednav/demos/taro/demo3.tsx
+++ b/src/packages/fixednav/demos/taro/demo3.tsx
@@ -1,5 +1,6 @@
 import React, { useState } from 'react'
 import { FixedNav } from '@nutui/nutui-react-taro'
+import pxTransform from '@/utils/px-transform'
 
 const Demo3 = () => {
   const list = [
@@ -36,16 +37,14 @@ const Demo3 = () => {
     console.log(item, event)
   }
   return (
-    <>
-      
-    >
+    
   )
 }
 export default Demo3
diff --git a/src/packages/fixednav/demos/taro/demo4.tsx b/src/packages/fixednav/demos/taro/demo4.tsx
index 65a54d025d..bb600ceaee 100644
--- a/src/packages/fixednav/demos/taro/demo4.tsx
+++ b/src/packages/fixednav/demos/taro/demo4.tsx
@@ -1,6 +1,8 @@
 import React, { useState } from 'react'
 import { FixedNav } from '@nutui/nutui-react-taro'
 import { Retweet } from '@nutui/icons-react-taro'
+import { View, Text } from '@tarojs/components'
+import pxTransform from '@/utils/px-transform'
 
 const Demo4 = () => {
   const [visible, setVisible] = useState(false)
@@ -16,7 +18,7 @@ const Demo4 = () => {
   return (
     <>
        {
         content={
           <>
             
-            {visible ? '自定义开' : '自定义关'}
+            {visible ? '自定义开' : '自定义关'}
           >
         }
       >
-        
+        
+          {[1, 2, 3, 4, 5].map((item) => {
+            return (
+              
+                {item}
+              
+            )
+          })}
+        
       
     >
   )
diff --git a/src/packages/fixednav/fixednav.scss b/src/packages/fixednav/fixednav.scss
index c3b321634b..7c85ede37e 100644
--- a/src/packages/fixednav/fixednav.scss
+++ b/src/packages/fixednav/fixednav.scss
@@ -6,7 +6,6 @@
   z-index: $fixednav-index;
   display: inline-block;
   height: 50px;
-  right: 0;
 
   &.active {
     .nut-fixednav-btn {
@@ -19,9 +18,9 @@
       transform: translateX(0%) !important;
     }
 
-    &.left {
+    &.nut-fixednav-left {
       .nut-icon {
-        transform: rotate(0deg) !important;
+        transform: rotate(0deg);
       }
     }
   }
@@ -29,13 +28,10 @@
   &-btn {
     box-sizing: border-box;
     position: absolute;
-    right: 0;
-
     z-index: $fixednav-index;
     width: 70px;
     height: 100%;
     background: $fixednav-button-background;
-    border-radius: 45px 0px 0px 45px;
     box-shadow: 0px 2px 4px 0px rgba(0, 0, 0, 0.2);
     display: flex;
     align-items: center;
@@ -50,33 +46,21 @@
     }
 
     .nut-icon {
-      margin-right: 5px;
-      transition: all 0.3s;
-      transform: rotate(0deg);
       transition: all 0.3s;
     }
   }
 
   &-list {
     position: absolute;
-    right: 0;
-    transform: translateX(100%);
     transition: all 0.5s;
-
     z-index: $fixednav-index;
     flex-shrink: 0;
     height: 100%;
     background: $fixednav-background-color;
     display: flex;
     justify-content: space-between;
-    border-radius: 25px 0px 0px 25px;
     box-shadow: 2px 2px 8px 0px rgba(0, 0, 0, 0.2);
 
-    padding: {
-      left: 20px;
-      right: 80px;
-    }
-
     &-item {
       position: relative;
       flex: 1;
@@ -89,57 +73,77 @@
       flex-shrink: 0;
       color: $fixednav-color;
 
-      img {
-        width: 20px;
-        height: 20px;
-        margin-bottom: 2px;
-      }
-
       .nut-fixednav-list-text {
         font-size: 10px;
       }
     }
+
+    &-image {
+      width: 20px;
+      height: 20px;
+      margin-bottom: 2px;
+    }
   }
 
-  &.left {
-    right: auto;
-    left: 0;
+  &-right {
+    right: 0;
+    .nut-fixednav-btn {
+      right: 0;
+      border-radius: 45px 0px 0px 45px;
+      .nut-icon {
+        margin-right: 5px;
+        transform: rotate(0deg);
+      }
+    }
+    .nut-fixednav-list {
+      right: 0;
+      transform: translateX(100%);
+      border-radius: 25px 0px 0px 25px;
+      padding: {
+        left: 20px;
+        right: 80px;
+      }
+    }
+  }
 
+  &-left {
+    left: 0;
     .nut-fixednav-btn {
       flex-direction: row-reverse;
-      right: auto;
       left: 0;
       border-radius: 0 45px 45px 0;
-
       .nut-icon {
-        transform: rotate(180deg);
-        margin-right: 0px;
         margin-left: 5px;
+        transform: rotate(180deg);
       }
     }
 
     .nut-fixednav-list {
       transform: translateX(-100%);
-      right: auto;
+      left: 0;
       border-radius: 0px 25px 25px 0px;
-
       padding: {
         left: 80px;
         right: 20px;
       }
-
-      margin: 0;
     }
   }
 }
 
 [dir='rtl'] .nut-fixednav,
 .nut-rtl .nut-fixednav {
-  right: auto;
-  left: 0;
+  &-right {
+    right: auto;
+    left: 0;
+  }
   &.active {
     .nut-icon {
-      transform: rotate(-180deg);
+      transform: rotate(0deg);
+    }
+    &.nut-fixednav-left {
+      .nut-icon {
+        transform: rotate(-180deg);
+      }
     }
   }
 
@@ -174,7 +178,7 @@
     }
   }
 
-  &.left {
+  &-left {
     left: auto;
     right: 0;
 
diff --git a/src/packages/fixednav/fixednav.taro.tsx b/src/packages/fixednav/fixednav.taro.tsx
index 85581835c8..1074e4951f 100644
--- a/src/packages/fixednav/fixednav.taro.tsx
+++ b/src/packages/fixednav/fixednav.taro.tsx
@@ -1,7 +1,7 @@
 import React, { FunctionComponent } from 'react'
 import classNames from 'classnames'
 import { ArrowLeft } from '@nutui/icons-react-taro'
-import { View } from '@tarojs/components'
+import { View, Image } from '@tarojs/components'
 import Overlay from '@/packages/overlay/index.taro'
 import { useConfig } from '@/packages/configprovider/index.taro'
 import { TaroFixedNavProps } from '@/types'
@@ -55,7 +55,7 @@ export const FixedNav: FunctionComponent<
     {
       active: visible,
     },
-    type,
+    `${classPrefix}-${type}`,
     className
   )
 
@@ -69,7 +69,7 @@ export const FixedNav: FunctionComponent<
         {React.isValidElement(item.icon) ? (
           item.icon
         ) : (
-           +          
         )}
         {item.text}
       
diff --git a/src/packages/fixednav/fixednav.tsx b/src/packages/fixednav/fixednav.tsx
index cc403ed863..281495e5d5 100644
--- a/src/packages/fixednav/fixednav.tsx
+++ b/src/packages/fixednav/fixednav.tsx
@@ -55,7 +55,7 @@ export const FixedNav: FunctionComponent<
     {
       active: visible,
     },
-    type,
+    `${classPrefix}-${type}`,
     className
   )
 
@@ -69,7 +69,7 @@ export const FixedNav: FunctionComponent<
         {React.isValidElement(item.icon) ? (
           item.icon
         ) : (
-
+          
         )}
         {item.text}
       
diff --git a/src/packages/fixednav/fixednav.tsx b/src/packages/fixednav/fixednav.tsx
index cc403ed863..281495e5d5 100644
--- a/src/packages/fixednav/fixednav.tsx
+++ b/src/packages/fixednav/fixednav.tsx
@@ -55,7 +55,7 @@ export const FixedNav: FunctionComponent<
     {
       active: visible,
     },
-    type,
+    `${classPrefix}-${type}`,
     className
   )
 
@@ -69,7 +69,7 @@ export const FixedNav: FunctionComponent<
         {React.isValidElement(item.icon) ? (
           item.icon
         ) : (
-           +
+           )}
         )}
         {item.text}
       
From a2ac78b9d7988d08d33df2edf37d48f077018307 Mon Sep 17 00:00:00 2001
From: songchenglin3 <353833373@qq.com>
Date: Tue, 18 Mar 2025 12:55:12 +0800
Subject: [PATCH 2/2] fix: update test
---
 src/packages/fixednav/__tests__/fixednav.spec.tsx | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/packages/fixednav/__tests__/fixednav.spec.tsx b/src/packages/fixednav/__tests__/fixednav.spec.tsx
index 5f7520d442..dce90d380b 100644
--- a/src/packages/fixednav/__tests__/fixednav.spec.tsx
+++ b/src/packages/fixednav/__tests__/fixednav.spec.tsx
@@ -30,12 +30,16 @@ const list: FixedNavItem[] = [
 
 test('basic usage', () => {
   const { container } = render()
-  expect(container.querySelector('.nut-fixednav')).toHaveClass('right')
+  expect(container.querySelector('.nut-fixednav')).toHaveClass(
+    'nut-fixednav-right'
+  )
 })
 
 test('left nav', () => {
   const { container } = render()
-  expect(container.querySelector('.nut-fixednav')).toHaveClass('left')
+  expect(container.querySelector('.nut-fixednav')).toHaveClass(
+    'nut-fixednav-left'
+  )
 })
 
 test('should be displayed after setting the un-active-text', () => {