Grease a 9x5-inch loaf pan with oil or oil spray. Line it with parchment paper. Preheat the oven to 350° F/ 180° C.
Add 1 cup cranberries in a bowl (reserve some for topping the batter). Coat cranberries with 1/2 teaspoon of all-purpose flour. Set aside.
Sift all-purpose flour, baking powder, baking soda, and salt in a mixing bowl. Whisk well and set aside. Sift 2-3 times for a lighter and airy cake.
In another mixing bowl, add yogurt and castor sugar. Whisk until well blended.
Add oil, orange juice, vanilla extract, and orange zest.
Whisk until everything is well combined.
Pour the wet ingredients into the dry ingredients. Mix just until combined and no more flour pockets are visible.
Do not over mix, or you will end up with a pretty dense cake. A few lumps are okay in the batter.
Add the coated cranberries to the batter and fold gently.
Transfer the batter to a prepared pan. Smooth the surface using a spatula.
Tap the pan to remove air bubbles. Top the batter with reserved cranberries.
Bake at 350° F/ 180° C for about 55 to 60 minutes or until a toothpick inserted in the center comes out clean.
Let the loaf cool in the pan for 10 minutes. Loosen the edges with a butter knife. Then transfer to a wire rack and let it cool down completely.
In a mixing bowl, sift 1 cup icing sugar, add 1 tablespoon orange juice, 1 tablespoon melted butter, 1 teaspoon orange zest. Whisk well until you have a smooth and pourable consistency. I added a little over 2 tablespoons of orange juice to adjust the consistency.
If it is too runny, add more icing sugar. If it is too thick, thin it out with a few teaspoons of orange juice.